调用DeleteObject删除某个文件(Object)。
注意事项
要删除文件,您必须有
oss:DeleteObject
权限。要删除文件指定版本,您必须具有oss:DeleteObjectVersion
权限。具体操作,请参见为RAM用户授权自定义的权限策略。文件删除后无法恢复,请谨慎操作。关于删除文件的更多信息,请参见删除文件。
无论要删除的Object是否存在,删除成功后均会返回204状态码。
如果Object类型为软链接,使用DeleteObject接口只会删除该软链接。
版本控制
版本控制状态下的删除行为说明如下:
未指定versionId(临时删除)
在未指定versionId的情况下执行删除操作时,默认不会删除Object的当前版本,而是对当前版本插入删除标记(Delete Marker)。此外,响应中还会返回
header:x-oss-delete-marker = true
以及新生成的删除标记的版本号x-oss-version-id
。x-oss-delete-marker
的值为true,表示与返回的x-oss-version-id
对应的版本为删除标记。说明如果Bucket已暂停版本控制,且在Object已存在null历史版本的情况下,执行未指定versionId的删除操作,则会插入versionId为null的删除标记,并覆盖已存在的null历史版本。单个Object最多只有一个versionId为null的版本。
指定versionId(永久删除):
如果在指定versionId的情况下执行删除操作时,OSS会根据
params
中指定的versionId
参数永久删除该版本。如果要删除ID为null的版本,请在params
参数中添加params['versionId'] = “null”
,OSS将null字符串当成null的versionId,从而删除versionId为null的Object。
请求语法
DELETE /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
当您在OSS ON云盒中调用该接口时,您需要将Host替换为云盒Endpoint。更多信息,请参见云盒Endpoint。
请求头
此接口仅涉及公共请求头。更多信息,请参见公共请求头(Common Request Headers)。
响应头
名称 | 类型 | 示例值 | 描述 |
x-oss-delete-marker | 布尔型 | true | Object为删除标记。
有效值:true |
x-oss-version-id | 字符串 | CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz**** | Object的versionId。
|
此接口还需要包含公共响应头。关于公共响应头的更多信息,请参见公共响应头(Common Response Headers)。
示例
执行DeleteObject操作
请求示例
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
未指定versionId执行DeleteObject操作
此时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
指定versionId执行DeleteObject操作
通过指定versionId来执行DeleteObject操作时,将永久删除该指定versionId的Object。
请求示例
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
指定versionId删除“删除标记”
指定删除的版本为删除标记时,响应中将返回
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
DeleteObject接口所对应的各语言SDK如下:
相关文档
如果需要删除多个文件,请参见DeleteMultipleObjects。
如果需要自动删除文件,请参见生命周期概述。
错误码
错误码 | HTTP状态码 | 描述 |
FileImmutable | 409 | Bucket中的数据处于被保护状态时,如果尝试删除或修改这些数据,则返回该错误。 |