全部產品
Search
文件中心

Object Storage Service:DeleteObject

更新時間:Jun 19, 2024

調用DeleteObject刪除某個檔案(Object)。

注意事項

  • 要刪除檔案,您必須有oss:DeleteObject許可權。要刪除檔案指定版本,您必須具有oss:DeleteObjectVersion許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 檔案刪除後無法恢複,請謹慎操作。關於刪除檔案的更多資訊,請參見刪除檔案

  • 無論要刪除的Object是否存在,刪除成功後均會返回204狀態代碼。

  • 如果Object類型為軟連結,使用DeleteObject介面只會刪除該軟連結。

  • Bucket開啟階層命名空間後,使用DeleteObject介面不能刪除該Bucket中的目錄(Directory)。

版本控制

版本控制狀態下的刪除行為說明如下:

  • 未指定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

要求標頭

此介面僅涉及公用要求標頭。更多資訊,請參見公用要求標頭(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 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如下:

相關文檔

錯誤碼

錯誤碼

HTTP狀態代碼

描述

FileImmutable

409

Bucket中的資料處於被保護狀態時,如果嘗試刪除或修改這些資料,則返回該錯誤。

FileAlreadyExists

409

Bucket開啟階層命名空間後,當您要在該Bucket中刪除某個Object時,如果設定的Object為目錄,則返回該錯誤。