すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ディレクトリの削除

最終更新日:Apr 28, 2025

この操作を呼び出して、ディレクトリを削除できます。この操作は、階層型名前空間機能が有効になっているバケットにのみ適用できます。

注意事項

  • ディレクトリを削除するには、次のいずれかの方法を使用します。

    • 再帰的削除: すべてのオブジェクトとサブディレクトリがディレクトリから削除されます。

    • 非再帰的削除: ディレクトリが空の場合、ディレクトリを削除できます。

  • 異なる削除方法を使用する場合、異なる権限が必要です。

    • 再帰的削除方法を使用してディレクトリを削除する場合、ディレクトリ、およびこのディレクトリ内のすべてのオブジェクトとサブディレクトリに対する DeleteObject 権限が必要です。

      たとえば、desktop ディレクトリから oss ディレクトリを再帰的に削除するには、 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

String

いいえ

ディレクトリを再帰的に削除するかどうかを指定します。

  • x-oss-delete-recursive を指定しない場合、または x-oss-delete-recursivefalse に設定した場合、非再帰的削除方法が使用されます。ディレクトリが空の場合にのみ、ディレクトリを削除できます。

  • x-oss-delete-recursivetrue に設定すると、再帰的削除方法が使用されます。このディレクトリ内のすべてのオブジェクトとサブディレクトリ、およびディレクトリ自体が削除されます。

デフォルト値: false

x-oss-delete-token

String

いいえ

次の削除操作を開始するオブジェクトまたはディレクトリの名前。このオプションは、x-oss-delete-recursivetrue に設定されている場合にのみ有効です。

バケットで DeleteDirectory 操作を初めて呼び出すとき、このオプションは空です。

この API 操作には、Host や Date などの共通リクエストヘッダーも含める必要があります。共通リクエストヘッダーの詳細については、「共通リクエストヘッダー」をご参照ください。

レスポンスヘッダー

この API 操作に関連するレスポンスヘッダーには、共通レスポンスヘッダーのみが含まれます。この API 操作に関連する共通レスポンスヘッダーの詳細については、「共通レスポンスヘッダー」をご参照ください。

レスポンス要素

要素

タイプ

説明

DeleteDirectoryResult

コンテナー

削除されたオブジェクトを格納するコンテナー。

親ノード: なし

DirectoryName

String

削除されたディレクトリの名前。

親ノード: DeleteDirectoryResult

DeleteNumber

String

削除されたオブジェクトとディレクトリの数。

親ノード: DeleteDirectoryResult

NextDeleteToken

String

削除操作を開始するオブジェクトまたはディレクトリの名前。

親ノード: 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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

    成功レスポンスの例

    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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    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>

OSS SDK

以下のプログラミング言語の OSS SDK を使用して、DeleteDirectory 操作を呼び出すことができます。

エラーコード

エラーコード

HTTP ステータスコード

説明

AccessDenied

403

考えられる原因:

  • ディレクトリを削除するときに、指定されたバケットにアクセスする権限がありません。

  • ディレクトリを削除するときに、ディレクトリを削除する権限がありません。

NoSuchKey

404

ディレクトリを削除するときに、指定されたディレクトリが存在しません。

FileAlreadyExists

409

考えられる原因:

  • 非再帰的削除方法を使用してディレクトリを削除するときに、ディレクトリが空ではありません。

  • 再帰的削除方法を使用してディレクトリを削除するときに、同時にディレクトリにデータを書き込むための同時リクエストが送信されます。

InvalidArgument

400

再帰的削除方法を使用してディレクトリを削除するときに、 x-oss-delete-token 値の形式が無効です。