SharePoint REST API - 資料夾和檔案
部落格地址:http://blog.csdn.net/FoxDave
本篇講述如何通過REST操作資料夾和檔案。
使用REST操作資料夾
在你知道某個文件庫中的資料夾的URL時,可以使用如下的程式碼獲取它。
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Shared Documents')
method: GET
headers:
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose" or "application/atom+xml"
下面的XML是一個請求返回資訊的示例。<content type="application/xml">
<m:properties>
<d:ItemCount m:type="Edm.Int32">0</d:ItemCount>
<d:Name>Shared Documents</d:Name>
<d:ServerRelativeUrl>/Shared Documents</d:ServerRelativeUrl>
<d:WelcomePage/>
</m:properties>
</content>
如果想要建立資料夾,使用下面的程式碼。url: http://site url/_api/web/folders
method: POST
body: { '__metadata': { 'type': 'SP.Folder' }, 'ServerRelativeUrl': '/document library relative url/folder name'}
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
content-length:length of post body
更新資料夾。url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')
method: POST
body: { '__metadata': { 'type': 'SP.Folder' }, 'Name': 'New name' }
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
"IF-MATCH": etag or "*"
"X-HTTP-Method":"MERGE",
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
content-length:length of post body
最後當然是刪除資料夾。url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')
method: POST
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
"IF-MATCH": etag or "*"
"X-HTTP-Method":"DELETE"
使用REST操作檔案獲取一個資料夾下所有檔案的程式碼如下。
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files
method: GET
headers:
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose" or "application/atom+xml"
通過檔名獲取指定檔案的程式碼如下。url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files('file name')/$value
method: GET
headers:
Authorization: "Bearer " + accessToken
或者通過URL。url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/$value
method: GET
headers:
Authorization: "Bearer " + accessToken
下面的示例演示瞭如何將一個檔案新增到指定的資料夾。url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/add(url='a.txt',overwrite=true)
method: POST
body: "Contents of file"
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
content-length:length of post body
下面展示瞭如何使用PUT方法(注意對於檔案只能用PUT)來更新一個檔案。url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/$value
method: POST
body: "Contents of file."
Headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
X-HTTP-Method:"PUT"
content-length:length of post body
如果你想要更新一個檔案的後設資料metadata,你需要將檔案當做列表項去對待,參考前一講提到的內容,構建一個如https://<site url>/_api/web/lists/getbytitle('Documents')/items(<item id>)這樣的URL去傳送請求。如果想要簽出一個檔案,使用下面的請求。
url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/CheckOut(),
method: POST
headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
對應的簽入操作為。url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/CheckIn(comment='Comment',checkintype=0)
method: POST
headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
如果想要刪除一個檔案,使用下面的請求。url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')
method: POST
headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
IF-MATCH: etag or "*"
X-HTTP-Method:"DELETE"
通過REST操作大檔案通過REST可以操作的最大檔案大小為2GB,示例如下。
url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/Add(url='file name', overwrite=true)
method: POST
body: contents of binary file
headers:
Authorization: "Bearer " + accessToken
X-RequestDigest: form digest value
content-type: "application/json;odata=verbose"
content-length:length of post body
下面的程式碼展示瞭如何應用上面的請求結合跨域庫來實現檔案的建立。function uploadFileBinary() {
XDomainTestHelper.clearLog();
var ro;
if (document.getElementById("TxtViaUrl").value.length > 0) {
ro = new SP.RequestExecutor(document.getElementById("TxtWebUrl").value, document.getElementById("TxtViaUrl").value);
}
else {
ro = new SP.RequestExecutor(document.getElementById("TxtWebUrl").value);
}
var body = "";
for (var i = 0; i < 1000; i++) {
var ch = i % 256;
body = body + String.fromCharCode(ch);
}
var info = {
url: "_api/web/lists/getByTitle('Shared Documents')/RootFolder/Files/Add(url='a.dat', overwrite=true)",
method: "POST",
binaryStringRequestBody: true,
body: body,
success: success,
error: fail,
state: "Update"
};
ro.executeAsync(info);
}
通過REST操作列表項的附件下面的請求展示瞭如何獲取指定列表項所有的附件檔案。
url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles/
method: GET
headers:
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose" or "application/atom+xml"
也可以通過檔名獲取指定的附件。url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles('file name')/$value
method: GET
headers:
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose" or "application/atom+xml"
如果想向列表項新增附件,使用下面的程式碼。url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles/ add(FileName='file name')
method: POST
headers:
Authorization: "Bearer " + accessToken
body: "Contents of file."
X-RequestDigest: form digest value
content-length:length of post body
如果想更新列表項中的附件,使用下面的程式碼。url: http://site url/_api/web/lists/getbytitle('list title')/items(item id)/AttachmentFiles('file name')/$value
method: POST
body: "Contents of file."
headers:
Authorization: "Bearer " + accessToken
"X-HTTP-Method":"PUT"
X-RequestDigest: form digest value
content-length:length of post body
本文就介紹到這裡。 相關文章
- SharePoint REST API - 使用REST API和jQuery上傳一個檔案RESTAPIjQuery
- SharePoint REST API - REST請求導航的資料結構RESTAPI求導資料結構
- SharePoint REST API - 列表和列表項RESTAPI
- SharePoint REST API - 概述RESTAPI
- linq and rest api in sharepointRESTAPI
- SharePoint REST API - 同步SharePoint列表項RESTAPI
- SharePoint REST API - 確定REST端點URLRESTAPI
- SharePoint REST API - 基本操作(二)RESTAPI
- SharePoint REST API - 基本操作(一)RESTAPI
- macOS鎖定檔案和資料夾Mac
- gulp刪除檔案和資料夾
- 顯示所有檔案和資料夾"失效 解決無法顯示所有檔案和資料夾
- git的gitignore檔案排除資料夾和檔案Git
- SharePoint REST API - OData查詢操作RESTAPI
- 畸形檔案 資料夾
- git重新命名檔案和資料夾Git
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- C/C++遍歷資料夾和檔案C++
- Linux 資料夾和檔案大小排序Linux排序
- du df 檢視檔案和資料夾大小
- 使用libzip壓縮檔案和資料夾
- 遞迴遍歷磁碟下的某一資料夾中所有檔案,並copy檔案生成檔案和帶資料夾的檔案遞迴
- 讀取資料夾檔案
- SharePoint REST API - 一個請求批量操作RESTAPI
- Win10檔案和資料夾如何隱藏 win10隱藏檔案及資料夾的方法Win10
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- Java實現解壓縮檔案和資料夾Java
- 使用svn進行檔案和資料夾的忽略
- asp.net 遞迴刪除資料夾及其子資料夾和所有檔案[轉]ASP.NET遞迴
- 獲取資料夾及其子資料夾下的所有檔案
- 在Ubuntu檔案管理器中檢視隱藏檔案和資料夾Ubuntu
- SharePoint REST API - 使用REST介面對列表設定自定義許可權RESTAPI
- android 統計資料夾大小及刪除資料夾下所有檔案和路徑Android
- Win2000定時刪除資料夾內所有子資料夾和檔案
- IDEA中的.iml檔案和.idea資料夾Idea
- docker部署nginx並且掛載資料夾和檔案DockerNginx
- Win10秘笈:如何批次新建檔案和資料夾?Win10
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python