全部產品
Search
文件中心

Object Storage Service:0026-00000001

更新時間:Jun 19, 2024

問題描述

目標檔案不存在。

問題原因

您發起了GetObject等檔案訪問請求,但是您訪問的目標檔案不存在,或目標檔案的指定版本不存在。其他類似的涉及到檔案訪問的請求如果被訪問檔案不存在,也會遇到類似問題,比如CopyObject請求中,如果x-oss-copy-source指定的檔案不存在,也會返回該錯誤。

一個Object不存在的原因可能有:

  • 檔案上傳失敗。

  • 觸發生命週期管理規則,Object被刪除。

  • Object被其他具有合法許可權的使用者通過OSS控制台、OSS用戶端或API等方式刪除了。

  • 目標Bucket與其他Bucket存在跨地區複製關係,其他Bucket中執行的刪除操作被同步到目標Bucket中,此時Object也會被刪除。

問題樣本

比如您發起了如下請求:

PUT /xyz.txt HTTP/1.1
Host: destbucketname.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-copy-source: /examplebucket/abc.txt

如果儲存空間examplebucket中沒有名為abc.txt的檔案,服務端就會返回該錯誤。

解決方案

  • 驗證Object是否存在:

    • 如果想驗證您的請求訪問的檔案是存在的,可以使用HeadObject介面,如果返回的HTTP狀態代碼為404則說明目標檔案或版本不存在。

    • 如果Bucket開啟了多版本且您在請求中指定了VersionID,請確認您提供的VersionID對應的檔案版本是存在。您可以通過ListObjectVersions(GetBucketVersions)擷取Object的所有版本ID。

  • 擴充解決方案:

    • 確保請求的Object命名符合規範。Object名稱不能以正斜線(/)或者反斜線(\)開頭,需使用UTF-8編碼,且長度必須在1~1023字元之間。

    • 檢查OSS設定的生命週期規則,確認請求的Object未觸發刪除規則。詳情請參見基於最後一次修改時間的生命週期規則介紹

    • 確認其他具有合法許可權的使用者未刪除請求的Object。

    • 檢查Bucket配置的跨地區複製規則,確認請求的Object未被刪除。詳情請參見跨地區複製概述

相關文檔