У меня здесь немного проблемы. Вот контекст:Библиотека документов Sharepoint, хранящая файлы в файловой системе
Один из наших клиентов попросил нас разработать альтернативное решение для хранения документов библиотеки документов в базе данных контента, поскольку их база данных контента растет слишком быстро. Они предоставили нам сетевое хранилище, чтобы документы могли храниться в файловой системе. После того, как вы немного поработали, я нашел функцию под названием Удаленное хранилище BlobRBSRBS, но, как говорят ссылки, это для базы данных контента, которая неприемлема для контекста. Другой вариантом я придумал это использование SPItemEventReceiver так, что в ItemAdded события я мог бы спасти SPFILE, связанный с ListItem из SPItemEventProperties свойства к файловой системе и, возможно, удалить или усечь объект 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;
}
}
, заставляющий его не хранить его содержимое в базе данных контента. Но это не сработало. Каждый раз, когда я каким-то образом удаляю или усекаю SPFile, связанный с ListItem, сам ListItem либо удаляется из библиотеки документов, либо этот файл не изменяется. Поэтому я задаюсь вопросом: есть ли решение этой проблемы? Любые другие мысли, которые могли бы помочь мне в этом задании?
Заранее благодарен!
Благодарим вас за отзыв. Является ли это копией ** _ layouts ** upload form и tweeking, чтобы удовлетворить мои потребности, лучший способ пойти? –