Deletes an object.
Usage notes
- To delete an object, you must have the
oss:DeleteObject
permission. To delete a specific version of an object, you must have theoss:DeleteObjectVersion
permission. For more information, see Attach a custom policy to a RAM user. - HTTP status code 204 is returned when the DeleteObject operation succeeds, regardless of whether the object exists.
- If the object you want to delete is a symbolic link, the DeleteObject operation deletes only the symbolic link but not the content to which the link points.
- The DeleteObject operation cannot be used to delete directories in a bucket for which the hierarchical namespace feature is enabled.
Versioning
When you call DeleteObject to delete an object from a versioned bucket, you must determine whether to specify a version ID in the request.
- Delete an object without specifying a version ID (temporary deletion)
By default, if you do not specify the version ID of the object that you want to delete in the request, OSS does not delete the current version of the object but adds a delete marker to the object as the new version. In addition, the
x-oss-delete-marker=true
header and thex-oss-version-id
header that indicates the version ID of the created delete marker are included in the response.The value of the
x-oss-delete-marker
header in the response is true, which indicates that thex-oss-version-id
is the version ID of a delete marker.Note If versioning is suspended for a bucket and an object has a previous version whose ID is null, a delete marker whose version ID is null is added to the object and the previous version whose ID is null is overwritten when you perform the DeleteObject operation without specifying a version ID in the request. An object can have up to one version whose version ID is null. - Delete an object by specifying a version ID (permanent deletion)
If you specify the version ID of the object that you want to delete in the request, OSS permanently deletes the version specified by the
versionId
field in theparams
parameter. To delete a version whose ID is null, addparams['versionId'] = "null"
to theparams
parameter in the request. OSS identifies the string "null" as the ID of the version to delete and deletes the version whose ID is null.
Request structure
DELETE /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 02 Jan 2019 13:28:38 GMT
Authorization: SignatureValue
Request headers
This request contains only common request headers. For more information, see Common request headers.
Response headers
Header | Type | Example | Description |
---|---|---|---|
x-oss-delete-marker | Boolean | true | Indicates whether the object is a delete marker.
|
x-oss-version-id | String | CAEQMxiBgIDh3ZCB0BYiIGE4YjIyMjExZDhhYjQxNzZiNGUyZTI4ZjljZDcz**** | The version ID of the deleted object.
|
The response to a DeleteObject request contains only common response headers. For more information, see Common response headers.
Examples
- Delete an object from an unversioned bucket.Sample requests
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
Sample responsesHTTP/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
- Delete an object from a versioned bucket without specifying a version ID.
In this case, OSS adds a delete marker to the object and includes the
x-oss-delete-marker=true
header in the response.Sample requestsDELETE /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/****
Sample responsesHTTP/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
- Delete a version of the object from a versioned bucket by specifying the version ID.
In this case, the specified version of the object is permanently deleted.
Sample requestsDELETE /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****
Sample responsesHTTP/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
- Delete a delete marker from a versioned bucket by specifying the version ID of the delete marker.
In the following example, the specified version is a delete marker. The
x-oss-delete-marker=true
header is included in the response.Sample requestsDELETE /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****
Sample responsesHTTP/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
You can use OSS SDKs for the following programming languages to call DeleteObject:
Error codes
Error code | HTTP status code | Description |
---|---|---|
FileImmutable | 409 | The error message returned because you attempt to delete or modify protected data. During the protection period, data in the bucket cannot be deleted or modified. |
FileAlreadyExists | 409 | The error message returned because the object that you want to delete is a directory in a bucket for which the hierarchical namespace feature is enabled. |