调用DeleteObject删除某个文件(Object)。

注意事项

  • 要删除文件,您必须有Object的写权限。
  • 无论要删除的Object是否存在,删除成功后均会返回204状态码。
  • 如果Object类型为软链接,使用DeleteObject接口只会删除该软链接。

版本控制

版本控制状态下的删除行为说明如下:

  • 未指定versionId(临时删除):

    如果在未指定versionId的情况下执行删除操作时,默认不会删除Object的当前版本,而是对当前版本插入删除标记(Delete Marker)。此时,在未指定versionId的情况下执行GetObject操作,OSS会检测到当前版本为删除标记,并返回404 Not Found。此外,响应中还会返回header:x-oss-delete-marker = true以及新生成的删除标记的版本号x-oss-version-id

    x-oss-delete-marker的值为true,表示与返回的x-oss-version-id对应的版本为删除标记。

  • 指定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: Wed, 02 Jan 2019 13:28:38 GMT
Authorization: SignatureValue

请求头

此接口仅包含公共请求头。关于公共请求头的更多信息,请参见公共请求头(Common Request Headers)

响应头

名称 类型 示例值 描述
x-oss-delete-marker 布尔型 true Object为删除标记。
  • 未指定versionId执行DeleteObject操作时,OSS会创建删除标记,响应中会返回此Header,且值为true。
  • 指定versionId来永久删除指定Object版本时,如果该版本是删除标记,响应中会返回此Header,且值为true。
有效值:true
x-oss-version-id 字符串 CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz**** Object的versionId。
  • 未指定versionId执行DeleteObject操作时,OSS会创建删除标记,响应中会返回此Header,表示新创建的删除标记的versionId。
  • 指定versionId来永久删除Object指定版本时,响应中会返回此Header,表示删除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 twnetzwjkqr9eq6:z73SSKA6t2tNTP4GuPjPiyV/****
    返回示例
    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 gb3m2qiwirupd6v:UjOXBmIbJD3qXL+DP1EDNyCI****
    返回示例
    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 jh475i54ffozhoy:4tX6Z+fnhtINhp0g+sRiLEQb****
    返回示例
    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如下:

错误码

错误码 HTTP状态码 描述
FileImmutable 409 Bucket中的数据处于被保护状态时,如果尝试删除或修改这些数据,则返回该错误。