DeleteObject 接口请求可以从指定存储桶(Bucket)中删除一个对象(Object)。
注意事项
文件对象与目录对象
对象键以
/ 结尾代表目录对象,不以 / 结尾代表文件对象。本接口对两类对象的删除遵循统一规则:对不存在的对象(包括对象键末尾类型与实际类型不匹配的情况,例如实际只存在文件对象
foo 时调用 DELETE /foo/,或实际只存在目录对象 foo/ 时调用 DELETE /foo)调用本接口,均返回 204 No Content,且不会删除任何已存在的对象。删除文件对象:仅删除该文件对象本身,不影响其所在的目录对象。
删除目录对象:默认仅当目录为空时才能成功删除,返回
204 No Content;目录非空时返回 409 DirNotEmpty。如需一次性删除非空目录及其下所有对象,可携带 x-cos-delete-recursive: true,服务将递归删除目录本身以及其下所有子对象,返回 204 No Content。x-cos-delete-recursive 的适用范围:
x-cos-delete-recursive 仅对目录对象有意义。对文件对象(对象键不以 / 结尾)调用本接口时携带 x-cos-delete-recursive: true,将返回 400 InvalidArgument。请求
请求语法
DELETE /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cosrapid.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
说明:
请求参数
此接口无请求参数。
请求头部
Header 名称 | 描述 | 类型 | 是否必选 |
x-cos-delete-recursive | 是否递归删除目录下的所有对象,取值为 true 时启用。行为契约详见「注意事项」 | string | 否 |
请求体
该请求的请求体为空。
响应
响应头部
响应体
该接口的响应体为空。
错误码
实际案例
案例一:删除文件对象
请求
DELETE /exampleobject HTTP/1.1Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.comDate: Wed, 29 May 2019 04:10:12 GMTAuthorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=date;host&q-url-param-list=&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
响应
HTTP/1.1 204 No ContentContent-Length: 0Connection: keep-aliveDate: Wed, 29 May 2019 04:10:12 GMTx-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw
案例二:删除空目录对象
请求
DELETE /folder/ HTTP/1.1Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.comDate: Wed, 29 May 2019 04:10:12 GMTAuthorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=date;host&q-url-param-list=&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
响应
HTTP/1.1 204 No ContentContent-Length: 0Connection: keep-aliveDate: Wed, 29 May 2019 04:10:12 GMTx-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw
案例三:删除非空目录对象
请求
DELETE /folder/ HTTP/1.1Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.comDate: Wed, 29 May 2019 04:10:12 GMTAuthorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=date;host&q-url-param-list=&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
响应
HTTP/1.1 409 ConflictContent-Type: application/xmlDate: Wed, 29 May 2019 04:10:12 GMTx-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw<?xml version='1.0' encoding='utf-8'?><Error><Code>DirNotEmpty</Code><Message>Directory not empty.</Message><Resource></Resource><RequestId>NjUwMDAwMDAwMDAwMDAwMDAw</RequestId><TraceId></TraceId></Error>
案例四:使用 x-cos-delete-recursive 递归删除非空目录
本案例在请求中携带
x-cos-delete-recursive: true,将目录 folder/ 以及其下所有对象一并删除。请求
DELETE /folder/ HTTP/1.1Host: examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.comDate: Wed, 29 May 2019 04:10:12 GMTx-cos-delete-recursive: trueAuthorization: q-sign-algorithm=sha1&q-ak=AKIDXXXXXXXX&q-sign-time=1559074212;1559077812&q-key-time=1559074212;1559077812&q-header-list=date;host;x-cos-delete-recursive&q-url-param-list=&q-signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
响应
HTTP/1.1 204 No ContentContent-Length: 0Connection: keep-aliveDate: Wed, 29 May 2019 04:10:12 GMTx-cos-request-id: NjUwMDAwMDAwMDAwMDAwMDAw