2016-11-08 359 views
0

我在這裏遇到了一些麻煩。以下是背景:在文件系統上存儲文件的Sharepoint文檔庫

我們的一位客戶要求我們開發一種替代解決方案,以將文檔庫的文檔存儲在內容數據庫中,因爲他們的內容數據庫增長過快。他們爲我們提供了一個網絡存儲,以便文件可以存儲在文件系統中。 Google搜索了一下之後,我發現了一個名爲遠程Blob存儲的功能RBSRBS,但正如參考文獻所說,這是每個內容數據庫的功能,這是上下文不可接受的功能。另一種選擇我想出是利用SPItemEventReceiver,以便在ItemAdded事件中,我可以拯救SPFILE列表項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; 
    } 
} 

強制它不將其內容存儲到內容數據庫中。但它沒有解決。每次我以某種方式設法刪除或截斷與ListItem關聯的SPFile時,ListItem本身或者從文檔庫中被刪除,或者文件不會受到更改的影響。所以我的問題是:是否有解決這個問題的方法?任何其他的想法可以幫助我在這個追求?

在此先感謝!

回答

1

正如你問其他的想法

  1. 一件事進入我的腦海裏是業務,而不是網絡存儲一個驅動
  2. 另一個是開發定製的文件上傳,直接把文件上傳到網絡存儲和一次上傳,在SharePoint列表中添加一個條目。
+0

感謝您的反饋。它是否製作了** _佈局**上傳表單的副本,並調整它以滿足我的需求最佳途徑? –

相關問題