オブジェクトを削除します。
使用上の注意
オブジェクトを削除するには、
oss:DeleteObject
権限が必要です。オブジェクトの特定のバージョンを削除するには、oss:DeleteObjectVersion
権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。バケットにデータレプリケーションルールが設定されており、オブジェクトの作成、変更、削除を含むすべてのデータ変更 (追加/削除/変更) を同期するように設定されている場合、DeleteObject 操作を呼び出して格納されているオブジェクトを削除すると、レプリケーションポリシーに関連付けられたデスティネーションバケットからレプリケートされたオブジェクトが削除されます。さらに、このバケットでバージョン管理も有効になっている場合、DeleteObject 操作を呼び出すと、ソースバケットで削除されたオブジェクトの削除マーカーが作成され、デスティネーションバケットにレプリケートされます。
削除されたオブジェクトは復元できません。ご注意ください。オブジェクトの削除方法の詳細については、「オブジェクトの削除」をご参照ください。
DeleteObject 操作が成功すると、オブジェクトが存在するかどうかに関係なく、HTTP 204 ステータスコードが返されます。
削除するオブジェクトがシンボリックリンクの場合、DeleteObject 操作はシンボリックリンクのみを削除し、リンク先のオブジェクトは削除しません。
DeleteObject 操作を使用して、階層型名前空間機能が有効になっているバケット内のディレクトリを削除することはできません。
バージョン管理
バージョン管理されたバケットから DeleteObject を呼び出してオブジェクトを削除する場合、リクエストでバージョン ID を指定するかどうかを決定する必要があります。
バージョン ID を指定せずにオブジェクトを削除する (一時的な削除)
リクエストで削除するオブジェクトのバージョン ID を指定しない場合、OSS はオブジェクトの現在のバージョンを削除せず、削除マーカーを新しいバージョンとしてオブジェクトに追加します。さらに、リクエストへの応答には、
x-oss-delete-marker = true
ヘッダーと、作成された削除マーカーのバージョン ID を示すx-oss-version-id
ヘッダーが含まれます。x-oss-delete-marker
の値が true の場合、x-oss-version-id
の値は削除マーカーのバージョン ID です。説明バージョン管理が一時停止されたバケットで、バージョン ID を指定せずにオブジェクトを削除し、オブジェクトに既に null バージョンがある場合、OSS はバージョン ID が null の削除マーカーを追加して、既存の null バージョンを上書きします。オブジェクトは、バージョン ID が null のバージョンを 1 つだけ持つことができます。
バージョン ID を指定してオブジェクトを削除する (永続的な削除)
リクエストの
params
にversionId
を指定すると、OSS は指定されたバージョンを削除します。 null バージョンを削除する場合は、params
にparams['versionId'] = "null"
を含めます。OSS は文字列 "null" を削除するバージョンの ID として識別し、null バージョンを削除します。
リクエスト構文
DELETE /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
リクエストヘッダー
DescribeRegions リクエストのすべてのヘッダーは、共通のリクエストヘッダーです。詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
ヘッダー | タイプ | 例 | 説明 |
x-oss-delete-marker | ブール値 | true | オブジェクトが削除マーカーかどうかを示します。
有効な値: true |
x-oss-version-id | 文字列 | CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz**** | 削除されたオブジェクトのバージョン ID。
|
このリクエストへのレスポンスには、共通のレスポンスヘッダーが含まれています。共通レスポンスヘッダーの詳細については、「共通レスポンスヘッダー」をご参照ください。
例
バージョン管理されていないバケットからオブジェクトを削除します。
リクエスト例
DELETE /AK.txt HTTP/1.1 Host: test.oss-cn-zhangjiakou.aliyuncs.com Accept-Encoding: identity User-Agent: aliyun-sdk-python/2.6.0(Windows/7/AMD64;3.7.0) Accept: text/html Connection: keep-alive Date: Wed, 02 Jan 2019 13:28:38 GMT authorization: OSS qn6qrrqxo2oawuk53otfjbyc:zUglwRPGkbByZxm1+y4eyu+NIUs=zV0**** Content-Length: 0
レスポンス例
HTTP/1.1 204 No Content Server: AliyunOSS Date: Wed, 02 Jan 2019 13:28:38 GMT Content-Length: 0 Connection: keep-alive x-oss-request-id: 5C2CBC8653718B5511EF4535 x-oss-server-time: 134
バージョン ID を指定せずに、バージョン管理されたバケットからオブジェクトを削除します。
この場合、OSS はオブジェクトに削除マーカーを追加し、レスポンスに
x-oss-delete-marker=true
ヘッダーを含めます。リクエスト例
DELETE /example HTTP/1.1 Host: versioning-delete.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:08:23 GMT Authorization: OSS qn6q**************:77Dv****************
レスポンス例
HTTP/1.1 204 NoContent x-oss-delete-marker: true x-oss-version-id: CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz**** x-oss-request-id: 5CAC1AB7B7AEADE01700**** Date: Tue, 09 Apr 2019 04:08:23 GMT Connection: keep-alive Server: AliyunOSS
バージョン ID を指定して、バージョン管理されたバケットからオブジェクトのバージョンを削除します。
この場合、指定されたバージョンのオブジェクトは完全に削除されます。
リクエスト例
DELETE /example?versionId=CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2**** HTTP/1.1 Host: versioning-delete.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:11:54 GMT Authorization: OSS qn6q**************:77Dv****************
レスポンス例
HTTP/1.1 204 No Content x-oss-version-id: CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2**** x-oss-request-id: 5CAC1B8AB7AEADE01700**** Date: Tue, 09 Apr 2019 04:11:54 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
削除マーカーのバージョン ID を指定して、バージョン管理されたバケットから削除マーカーを削除します。
次の例では、指定されたバージョンは削除マーカーです。レスポンスには
x-oss-delete-marker=true
ヘッダーが含まれます。リクエスト例
DELETE /example?versionId=CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2**** HTTP/1.1 Host: versioning-delete.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:16:25 GMT Authorization: OSS qn6q**************:77Dv****************
レスポンス例
HTTP/1.1 204 No Content x-oss-delete-marker: true x-oss-version-id: CAEQNhiBgIDFtp.B0BYiIDk4NzgwMmU4NDMyOTQyM2NiMDQxOTcxYWNhMjc1**** x-oss-request-id: 5CAC1C99B7AEADE01700**** Date: Tue, 09 Apr 2019 04:16:25 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
SDK
次のプログラミング言語の OSS SDK を使用して、DeleteObject を呼び出すことができます。
ossutil
DeleteObject 操作に対応する ossutil コマンドについては、「delete-object」をご参照ください。
参照
一度に複数のオブジェクトを削除するために呼び出すことができる API 操作については、「DeleteMultipleObjects」をご参照ください。
オブジェクトを自動的に削除する方法については、「ライフサイクル」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
FileImmutable | 409 | 保護されたデータを削除または変更しようとしました。保護期間中は、バケット内のデータを削除または変更することはできません。 |
FileAlreadyExists | 409 | 削除しようとしているオブジェクトは、階層型名前空間機能が有効になっているバケット内のディレクトリです。 |