![](/img/trans.png)
[英]How to update SharePoint online file's metadata using REST API?
[英]REST API - files with metadata - how to submit them
假設我正在創建一個服務來管理帶有元數據的文件。 正如在SO上的另一個線程中已經討論的那樣,首選方法是創建兩個資源:
問題是-允許客戶端上傳帶有元數據的文件的最佳方法是什么? 如何使用以下方法:
POST / files-客戶端上載二進制文件,服務創建一個新的文件資源和一個相應的新的空(即默認值)元數據資源,並返回文件資源的ID(即fileId)。
PUT / files / {fileId} / metadata-客戶端設置元數據。
我發現這種方法有一個缺點-假設某些元數據是強制性的。 通過這種流程,客戶端可能僅上傳文件,而沒有填寫元數據,從而使數據處於不一致狀態。
另一方面,允許客戶端同時發送文件和元數據似乎很奇怪,因為這是兩種不同的資源。
您將如何處理?
另一方面,允許客戶端同時發送文件和元數據似乎很奇怪,因為這是兩種不同的資源。
內容和元數據可能在您的服務器中表示為不同的資源,但是它們彼此之間密切相關,因此在沒有其他內容的情況下創建它們是沒有意義的。 例如,可能有一些客戶端僅需要元數據,因此它們可以顯示文件列表或有關單個文件的詳細信息。 另一方面,您需要元數據,以便客戶端至少可以知道他們下載的文件的名稱。 因此,您都需要它們。
這就是為什么最好在單個多部分 http請求中上載文件/內容和元數據。 在單個請求中上載所有內容使您的系統更加一致,因為它消除了上載內容但元數據未上載(或相反)的各種情況。
分段請求基本上是一個在其主體中同時具有元數據(作為字符串)和內容的請求。 唯一困難的部分是標題。 請查看上面的鏈接,以獲取有關多部分請求的更多信息,此外,您可能希望找到一個為您處理多部分標題的類(或類系列)(取決於您的平台/語言)。
另外-將元數據和內容作為不同的資源對客戶端來說是有益的-它們可能僅下載兩者之一,如果文件很大,則可以節省網絡流量(時間)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.