調用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中的數據處于被保護狀態時,如果嘗試刪除或修改這些數據,則返回該錯誤。 |