この操作を呼び出して、ディレクトリを削除できます。この操作は、階層型名前空間機能が有効になっているバケットにのみ適用できます。
注意事項
ディレクトリを削除するには、次のいずれかの方法を使用します。
再帰的削除: すべてのオブジェクトとサブディレクトリがディレクトリから削除されます。
非再帰的削除: ディレクトリが空の場合、ディレクトリを削除できます。
異なる削除方法を使用する場合、異なる権限が必要です。
再帰的削除方法を使用してディレクトリを削除する場合、ディレクトリ、およびこのディレクトリ内のすべてのオブジェクトとサブディレクトリに対する 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 | いいえ | ディレクトリを再帰的に削除するかどうかを指定します。
デフォルト値: false |
x-oss-delete-token | String | いいえ | 次の削除操作を開始するオブジェクトまたはディレクトリの名前。このオプションは、x-oss-delete-recursive が true に設定されている場合にのみ有効です。 バケットで 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 値の形式が無効です。 |