全部產品
Search
文件中心

Object Storage Service:DeleteDirectory

更新時間:Jun 19, 2024

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

字串

是否遞迴刪除目錄。

  • 不指定x-oss-delete-recursive或者指定x-oss-delete-recursivefalse時,表示非遞迴刪除,即只能刪除空目錄。

  • 指定x-oss-delete-recursivetrue時,表示遞迴刪除,即清空目錄中的所有檔案和目錄。

預設值:false

x-oss-delete-token

字串

下一個刪除目標的標記。此選項僅當x-oss-delete-recursivetrue時有效。

第一次調用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

Java SDK:刪除目錄

錯誤碼

錯誤碼

HTTP狀態代碼

描述

AccessDenied

403

返回該錯誤的可能原因如下:

  • 刪除目錄時,使用者對設定的Bucket沒有存取權限。

  • 刪除目錄時,使用者對目錄沒有刪除許可權。

NoSuchKey

404

刪除目錄時,設定的目錄不存在。

FileAlreadyExists

409

返回該錯誤的可能原因如下:

  • 使用非遞迴刪除方式刪除目錄時,目錄不為空白。

  • 使用遞迴刪除方式刪除目錄時,同時存在向目錄的並發寫請求。

InvalidArgument

400

使用遞迴刪除方式刪除目錄時,傳入的x-oss-delete-token格式錯誤。