2016-11-08 25 views
0

У меня здесь немного проблемы. Вот контекст:Библиотека документов 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 либо удаляется из библиотеки документов, либо этот файл не изменяется. Поэтому я задаюсь вопросом: есть ли решение этой проблемы? Любые другие мысли, которые могли бы помочь мне в этом задании?

Заранее благодарен!

ответ

1

Как вы уже спрашивали другие мысли

  1. Одна вещь приходит в мой ум один диск для бизнеса вместо сетевого хранилища
  2. Другой развивать загрузку пользовательских файлов, загружать файл непосредственно в сети хранения данных и один раз загрузите, добавьте запись в список SharePoint.
+0

Благодарим вас за отзыв. Является ли это копией ** _ layouts ** upload form и tweeking, чтобы удовлетворить мои потребности, лучший способ пойти? –