私はここで少し問題に陥っています。ファイルシステムにファイルを保存するSharepointドキュメントライブラリ
コンテンツデータベースが急激に増加しているため、ドキュメントライブラリのドキュメントをコンテンツデータベースに格納する代わりのソリューションを開発するよう依頼したユーザーがいました。彼らは私たちにネットワークストレージを提供して、ドキュメントをファイルシステムに格納できるようにしました。グーグルで調べたところ、リモートブロブストレージRBSRBSという名前の機能が見つかりましたが、参考文献のように、これはコンテンツデータベースの機能には当てはまりませんです。私が作ってみた他のオプションは、に、私は、ファイルシステムにSPItemEventProperties財産ののListItemに関連したSPFILEを保存して、おそらく削除または可能性イベントをItemAddedので、SPItemEventReceiverの使用であり、 SPFileオブジェクトを切り捨てます。
public static void DeleteAssociatedFile(SPWeb web, SPListItem item)
{
try
{
if (item == null) { throw new ArgumentNullException("item"); }
if (item.FileSystemObjectType == SPFileSystemObjectType.File)
{
web.AllowUnsafeUpdates = true;
using (var fileStream = item.File.OpenBinaryStream())
{
if (fileStream.CanWrite)
{
fileStream.SetLength(0);
}
}
item.File.Update();
}
}
catch (Exception ex)
{
// log error message
Logger.Unexpected("ListItemHelper.DeleteAssociatedFile", ex.Message);
throw;
}
finally
{
web.AllowUnsafeUpdates = false;
}
}
コンテンツをコンテンツデータベースに格納しないように強制します。しかしそれはうまくいかなかった。 ListItemに関連付けられたSPFileを何らかの形で削除または切り捨てるたびに、ListItem自体がドキュメントライブラリから削除されるか、ファイルが変更の影響を受けません。だから私の質問は:この問題の解決策はありますか?このクエストで私を助けることができる他の考え?
ありがとうございます!
フィードバックいただきありがとうございます。 ** _レイアウト**のアップロードフォームのコピーを作成し、それを私のニーズを満たすために最善の方法を実行するのですか? –