DeleteDirectory介面用於刪除目錄(Directory)。只有開啟階層命名空間的Bucket支援調用此介面。
注意事項
目錄支援如下刪除方式,請根據實際選擇。
遞迴刪除(Recursively Delete):清空目錄中的所有檔案和目錄。
非遞迴刪除:只能刪除空目錄。
使用的刪除方式不同時需要的許可權不同。
使用遞迴刪除方式刪除目錄時,您必須有目錄以及該目錄下所有檔案和目錄的DeleteObject許可權。
例如要遞迴刪除desktop目錄下osstest目錄,您必須有desktop/osstest和desktop/osstest/*的DeleteObject許可權。
使用非遞迴刪除方式刪除目錄時,您必須有目錄的DeleteObject許可權。
例如要非遞迴刪除desktop目錄下的dir目錄,您必須有desktop/dir的DeleteObject許可權。
使用遞迴刪除方式刪除目錄時,如果同時存在向目錄的並發寫請求,則可能導致目錄刪除失敗。
請求文法
POST /objectName?x-oss-delete HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
要求標頭
名稱 | 類型 | 是否必選 | 描述 |
x-oss-delete-recursive | 字串 | 否 | 是否遞迴刪除目錄。
預設值:false |
x-oss-delete-token | 字串 | 否 | 下一個刪除目標的標記。此選項僅當x-oss-delete-recursive為true時有效。 第一次調用DeleteDirectory介面時為空白。 |
此介面還需要包含Host、Date等公用要求標頭。關於公用要求標頭的更多資訊,請參見公用要求標頭(Common Request Headers)。
回應標頭
此介面只包含公用回應標頭。關於公用回應標頭的更多資訊,請參見公用回應標頭(Common Response Headers)。
響應元素
名稱 | 類型 | 描述 |
DeleteDirectoryResult | 容器 | 儲存被成功刪除的Object的容器。 父節點:None |
DirectoryName | 字串 | 刪除的目錄名稱。 父節點:DeleteDirectoryResult |
DeleteNumber | 字串 | 刪除的檔案和目錄數量。 父節點:DeleteDirectoryResult |
NextDeleteToken | 字串 | 下一次刪除起始位置的標記。 父節點:DeleteDirectoryResult |
樣本
非遞迴刪除目錄
請求樣本
POST /desktop/osstest/a?x-oss-delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Thu, 29 Apr 2021 05:21:12 GMT Authorization: OSS qn6q**************:77Dv****************
返回樣本
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Thu, 29 Apr 2021 05:21:12 GMT Connection: keep-alive Server: AliyunOSS <DeleteDirectoryResult> <DirectoryName>desktop/osstest/a</DirectoryName> <DeleteNumber>1</DeleteNumber> </DeleteDirectoryResult>
遞迴刪除目錄
請求樣本
POST /desktop/osstest/a?x-oss-delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Thu, 29 Apr 2021 05:21:12 GMT Authorization: OSS qn6q**************:77Dv**************** x-oss-delete-recursive: true
返回樣本
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Thu, 29 Apr 2021 05:21:12 GMT Connection: keep-alive Server: AliyunOSS <DeleteDirectoryResult> <DirectoryName>desktop/osstest/a</DirectoryName> <DeleteNumber>100</DeleteNumber> <NextDeleteToken>Cg9kZXNrdG9wL29zcy9hLzk-</NextDeleteToken> </DeleteDirectoryResult>
SDK
錯誤碼
錯誤碼 | HTTP狀態代碼 | 描述 |
AccessDenied | 403 | 返回該錯誤的可能原因如下:
|
NoSuchKey | 404 | 刪除目錄時,設定的目錄不存在。 |
FileAlreadyExists | 409 | 返回該錯誤的可能原因如下:
|
InvalidArgument | 400 | 使用遞迴刪除方式刪除目錄時,傳入的x-oss-delete-token格式錯誤。 |