deleteobject DeleteObject

发布时间:2020-07-08 12:01:54   来源:网络 关键词:deleteobject

deleteobject


DeleteObject用于删除某个文件(Object)。使用DeleteObject需要对该Object有写权限。

说明
  • 无论要删除的Object是否存在,删除成功后均会返回204状态码。
  • 如果Object类型为软链接,使用DeleteObject仅会删除该软链接。

版本控制

对于开启版本控制的Bucket执行 DeleteObject操作时,如果未指定versionId ,则保留Object的当前版本,并插入删除标记(Delete Marker)。如果指定versionId,则永久删除该指定版本ID的Object。

说明
  • 未指定versionId:

    如果在未指定versionId的情况下执行DeleteObject操作时,默认仅作用于Object的当前版本,但不会直接删除该Object的当前版本,而是插入一个删除标记(Delete Marker),并保留原来的当前版本。当执行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的情况下执行DeleteObject操作,OSS会根据传入的versionId参数永久删除该版本。如果要删除ID为null的版本,则传入versionId = null,OSS将null字符串当成null版本的ID号,从而删除ID为null版本的Object。

响应头

名称 类型 描述
x-oss-delete-marker bool
  • 未指定versionId执行DeleteObject 操作时,OSS会创建删除标记,响应中会返回此header,且值为true。
  • 指定versionId来永久删除指定Object版本时,如果该版本是删除标记,响应中会返回此header,且值为true。
有效值:true
x-oss-version-id 字符串
  • 未指定versionId执行DeleteObject操作时,OSS会创建删除标记,响应中会返回此header,表示新创建的删除标记的版本ID。
  • 指定versionId来永久删除指定Object版本时,响应中会返回此header,表示删除Object的版本ID。

请求语法

DELETE /ObjectName HTTP/1.1Host: BucketName.oss-cn-hangzhou.aliyuncs.comDate: GMT DateAuthorization: SignatureValue

示例

  • 请求示例
    DELETE /AK.txt HTTP/1.1Host: test.oss-cn-zhangjiakou.aliyuncs.comAccept-Encoding: identityUser-Agent: aliyun-sdk-python/2.6.0(Windows/7/AMD64;3.7.0)Accept: */*Connection: keep-alivedate: Wed, 02 Jan 2019 13:28:38 GMTauthorization: OSS qn6qrrqxo2oawuk53otfjbyc:zUglwRPGkbByZxm1+y4eyu+NIUs=zV0****Content-Length: 0
    返回示例
    HTTP/1.1 204 No ContentServer: AliyunOSSDate: Wed, 02 Jan 2019 13:28:38 GMTContent-Length: 0Connection: keep-alivex-oss-request-id: 5C2CBC8653718B5511EF4535x-oss-server-time: 134
  • 未指定versionId执行DeleteObject的请求示例 此时,OSS中会插入删除标记,响应中返回了x-oss-delete-marker=true。
    DELETE /example HTTP/1.1Host: versioning-delete.oss-cn-hangzhou.aliyuncs.comDate: Tue, 09 Apr 2019 04:08:23 GMTAuthorization: OSS twnetzwjkqr9eq6:z73SSKA6t2tNTP4GuPjPiyV/****
    返回示例
    HTTP/1.1 204 NoContentx-oss-delete-marker: truex-oss-version-id: CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz****x-oss-request-id: 5CAC1AB7B7AEADE01700****Date: Tue, 09 Apr 2019 04:08:23 GMTConnection: keep-aliveServer: AliyunOSS
  • 指定versionId执行DeleteObject操作的请求示例 以下示例中通过指定versionId来执行DeleteObject操作时,将永久删除该指定versionId的Object。
    DELETE /example?versionId=CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2**** HTTP/1.1Host: versioning-delete.oss-cn-hangzhou.aliyuncs.comDate: Tue, 09 Apr 2019 04:11:54 GMTAuthorization: OSS gb3m2qiwirupd6v:UjOXBmIbJD3qXL+DP1EDNyCI****
    返回示例
    HTTP/1.1 204 No Contentx-oss-version-id: CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2****x-oss-request-id: 5CAC1B8AB7AEADE01700****Date: Tue, 09 Apr 2019 04:11:54 GMTContent-Length: 0Connection: keep-aliveServer: AliyunOSS
  • 指定versionId来删除“删除标记”的请求示例 说明 仅允许对删除标记执行删除操作。

    以下示例中指定删除的版本为删除标记,则响应中将返回x-oss-delete-marker=true。

    DELETE /example?versionId=CAEQOBiBgIDNlJeB0BYiIDAwYjJlNDQ4YjJkMzQxMmY5NTM5N2UzZWNiZTQ2**** HTTP/1.1Host: versioning-delete.oss-cn-hangzhou.aliyuncs.comDate: Tue, 09 Apr 2019 04:16:25 GMTAuthorization: OSS jh475i54ffozhoy:4tX6Z+fnhtINhp0g+sRiLEQb****
    返回示例
    HTTP/1.1 204 No Contentx-oss-delete-marker: truex-oss-version-id: CAEQNhiBgIDFtp.B0BYiIDk4NzgwMmU4NDMyOTQyM2NiMDQxOTcxYWNhMjc1****x-oss-request-id: 5CAC1C99B7AEADE01700****Date: Tue, 09 Apr 2019 04:16:25 GMTContent-Length: 0Connection: keep-aliveServer: AliyunOSS

SDK

DeleteObject接口所对应的各语言SDK如下:

  • Java
  • Python
  • PHP
  • Go
  • C
  • .NET
  • Android
  • iOS
  • Node.js
  • Browser.js
  • Ruby

CC攻击防御
ddos攻击防御方法
猜你喜欢