この API を呼び出すと、ディレクトリを削除できます。 この操作は、階層的な名前空間機能が有効になっているバケットにのみ適用できます。
使用上の注意
- ディレクトリを削除するには、次のいずれかの方法を使用します。
- 再帰的削除: すべてのオブジェクトとサブディレクトリがディレクトリから削除されます。
- 非再帰的削除: ディレクトリが空の場合、ディレクトリを削除できます。
- 異なる削除方法を使用する場合は、異なる権限が必要です。
- 再帰的削除メソッドを使用してディレクトリを削除する場合は、そのディレクトリと、このディレクトリ内のすべてのオブジェクトおよびサブディレクトリに対するDeleteObjectアクセス許可が必要です。
たとえば、デスクトップディレクトリからossディレクトリを再帰的に削除するには、desktop/osstestディレクトリおよびdesktop/osstestディレクトリ内のすべてのオブジェクトおよびサブディレクトリに対するDeleteObject権限が必要です。
- 非再帰的削除を使用してディレクトリを削除するには、そのディレクトリに対するDeleteObject権限が必要です。
再帰的でない削除を使用してデスクトップディレクトリからdirディレクトリを削除するには、desktop/dirディレクトリに対するDeleteObject権限が必要です。
- 再帰的削除メソッドを使用してディレクトリを削除する場合は、そのディレクトリと、このディレクトリ内のすべてのオブジェクトおよびサブディレクトリに対するDeleteObjectアクセス許可が必要です。
- 再帰的削除メソッドを使用して、バケットのルートディレクトリを削除することはできません。
- 再帰的削除メソッドを使用してディレクトリを削除する場合、同時にディレクトリにデータを書き込む要求が送信されると、ディレクトリの削除に失敗することがあります。
リクエストの構造
POST /objectName?x-oss-delete HTTP/1.1
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com
日付: GMT日付
権限付与: SignatureValue
リクエストヘッダー
ヘッダー | データ型 | 必須 | 説明 |
x-oss-delete-recursive | String | 任意 | ディレクトリを再帰的に削除するかどうかを指定します。
デフォルト値:false |
x-oss-delete-token | String | 任意 | 次の削除操作が開始されるオブジェクトまたはディレクトリの名前。 このオプションは、x-oss-delete-recursiveがtrueに設定されている場合にのみ有効です。 このオプションは、バケットのDeleteDirectory操作を初めて呼び出すときは空になります。 |
このAPI操作には、HostやDateなどの一般的なリクエストヘッダーも含める必要があります。 共通リクエストヘッダーの詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
このAPI操作に含まれるレスポンスヘッダーには、共通のレスポンスヘッダーのみが含まれます。 このAPI操作に関連する共通レスポンスヘッダーの詳細については、「共通レスポンスヘッダー」をご参照ください。
レスポンス要素
要素 | データ型 | 説明 |
DeleteDirectoryResult | Container | 削除されたオブジェクトを格納するコンテナー。 親ノード: なし |
DirectoryName | String | 削除されたディレクトリの名前。 親ノード: DeleteDirectoryResult |
DeleteNumber | String | 削除されたオブジェクトとディレクトリの数。 親ノード: DeleteDirectoryResult |
NextDeleteToken | String | 削除操作が開始されるオブジェクトまたはディレクトリの名前。 親ノード: 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ステータスコード | 説明 |
AccessDenied | 403 | 考えられる原因:
|
NoSuchKey | 404 | ディレクトリを削除すると, 指定したディレクトリは存在しません。 |
FileAlreadyExists | 409 | 考えられる原因:
|
InvalidArgument | 400 | 再帰的削除メソッドを使用してディレクトリを削除する場合、x-oss-delete-token値の形式は無効です。 |