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

Object Storage Service:DeleteDirectory

最終更新日:Feb 23, 2024

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

使用上の注意

  • ディレクトリを削除するには、次のいずれかの方法を使用します。
    • 再帰的削除: すべてのオブジェクトとサブディレクトリがディレクトリから削除されます。
    • 非再帰的削除: ディレクトリが空の場合、ディレクトリを削除できます。
  • 異なる削除方法を使用する場合は、異なる権限が必要です。
    • 再帰的削除メソッドを使用してディレクトリを削除する場合は、そのディレクトリと、このディレクトリ内のすべてのオブジェクトおよびサブディレクトリに対するDeleteObjectアクセス許可が必要です。

      たとえば、デスクトップディレクトリからossディレクトリを再帰的に削除するには、desktop/osstestディレクトリおよびdesktop/osstestディレクトリ内のすべてのオブジェクトおよびサブディレクトリに対するDeleteObject権限が必要です。

    • 非再帰的削除を使用してディレクトリを削除するには、そのディレクトリに対するDeleteObject権限が必要です。

      再帰的でない削除を使用してデスクトップディレクトリからdirディレクトリを削除するには、desktop/dirディレクトリに対するDeleteObject権限が必要です。

  • 再帰的削除メソッドを使用して、バケットのルートディレクトリを削除することはできません。
  • 再帰的削除メソッドを使用してディレクトリを削除する場合、同時にディレクトリにデータを書き込む要求が送信されると、ディレクトリの削除に失敗することがあります。

リクエストの構造

POST /objectName?x-oss-delete HTTP/1.1
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com
日付: GMT日付
権限付与: SignatureValue 

リクエストヘッダー

ヘッダーデータ型必須説明
x-oss-delete-recursiveString任意ディレクトリを再帰的に削除するかどうかを指定します。
  • x-oss-delete-recursiveを指定しない場合、またはx-oss-delete-recursivefalseに設定しない場合、非再帰的deleteメソッドが使用されます。 ディレクトリが空の場合にのみ削除できます。
  • x-oss-delete-recursivetrueに設定した場合、再帰的deleteメソッドが使用されます。 ディレクトリと、このディレクトリ内のすべてのオブジェクトおよびサブディレクトリが削除されます。

デフォルト値:false

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

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

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

レスポンスヘッダー

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

レスポンス要素

要素データ型説明
DeleteDirectoryResultContainer削除されたオブジェクトを格納するコンテナー。

親ノード: なし

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

親ノード: DeleteDirectoryResult

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

親ノード: DeleteDirectoryResult

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

親ノード: DeleteDirectoryResult

  • 非再帰的削除を使用してディレクトリを削除する
    POST /desktop/osstest/a?x-oss-delete HTTP/1.1のサンプルリクエスト
    
    ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
    日付: 4月29日木曜日05:21:12 GMT 2021
    承認: OSS qn6qrrqxo2oawuk53otfjbyc:CTkuxpLAi4XZ + WwIfNm0Fmgb **** 
    成功応答
    のサンプルHTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC755F95A64485981
    日付: 4月29日木曜日05:21:12 GMT 2021
    接続: キープアライブ
    サーバー: AliyunOSS
    <DeleteDirectoryResult>
        <DirectoryName>desktop/osstest/a</DirectoryName>
        <DeleteNumber>1</DeleteNumber>
    </DeleteDirectoryResult> 
  • ディレクトリを再帰的に削除する

    リクエストの例

    POST /desktop/osstest/a?x-oss-delete HTTP/1.1
    ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
    日付: 4月29日木曜日05:21:12 GMT 2021
    承認: OSS qn6qrrqxo2oawuk53otfjbyc:CTkuxpLAi4XZ + WwIfNm0Fmgb ****
    x-oss-delete-recursive: true 
    成功応答
    のサンプルHTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC755F95A64485981
    日付: 4月29日木曜日05:21:12 GMT 2021
    接続: キープアライブ
    サーバー: AliyunOSS
    <DeleteDirectoryResult>
        <DirectoryName>desktop/osstest/a</DirectoryName>
        <DeleteNumber>100</DeleteNumber>
        <NextDeleteToken>CgJiYw --</NextDeleteToken>
    </DeleteDirectoryResult> 

SDK

OSS SDK for Java: ディレクトリの削除

エラーコード

エラーコードHTTPステータスコード説明
AccessDenied403考えられる原因:
  • ディレクトリを削除すると、指定されたバケットにアクセスする権限がありません。
  • ディレクトリを削除すると、ディレクトリを削除する権限がありません。
NoSuchKey404ディレクトリを削除すると, 指定したディレクトリは存在しません。
FileAlreadyExists409考えられる原因:
  • 非再帰的deleteメソッドを使用してディレクトリを削除する場合、ディレクトリは空ではありません。
  • 再帰的削除メソッドを使用してディレクトリを削除すると、同時にディレクトリにデータを書き込む要求が送信されます。
InvalidArgument400再帰的削除メソッドを使用してディレクトリを削除する場合、x-oss-delete-token値の形式は無効です。