全部產品
Search
文件中心

Object Storage Service:常見問題

更新時間:Oct 25, 2024

本文介紹在使用ossutil時可能出現的問題及處理方法。

說明

從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

ossutil支援v4簽名嗎?

1.7.12及以上版本支援v4簽名。關於v4簽名的更多資訊,請參見簽名版本4(推薦)

ossutil在原有命令的基礎上,添加--sign-version、--region參數。例如:您可以使用以下命令,建立杭州地區的Bucket。

./ossutil64 --sign-version v4 --region cn-hangzhou mb oss://examplebucket

低頻儲存或標準儲存的檔案是否支援同步檔案操作?

低頻儲存或標準儲存的檔案支援同步檔案操作。關於同步檔案的更多資訊,請參見簡介

如何設定不覆蓋同名檔案

在ossutil執行命令中增加-u參數,則不會覆蓋同名檔案。

使用-u參數上傳檔案時出現skip提示

問題分析:使用-u參數上傳檔案的時候,ossutil會將上傳檔案和儲存空間(Bucket)內已有檔案進行一次比對。

若發現上傳的檔案與目標Bucket內已有檔案同名,且該檔案的最後修改時間早於或等於Bucket內已有檔案,上傳時會跳過該檔案;若該檔案的最後修改時間晚於Bucket內已有檔案,則重新上傳該檔案。所以使用-u參數上傳檔案時出現skip提示是正常現象。

解決方案:確認Bucket內檔案上傳無問題後忽略該提示。

檔案解凍時出現403報錯

問題分析:操作解凍檔案的過程中出現403,有以下兩種可能性。

  • 若您是使用RAM使用者操作檔案,可能是RAM使用者權限不足,無目標檔案的操作許可權。

  • 您檔案內容違禁OSS被封鎖了。

解決方案:

  • RAM使用者權限不足:增加RAM使用者權限。

  • 檔案內容違禁:刪除或忽略該檔案。

使用ls命令查看Bucket無檔案,刪除Bucket時報錯

問題分析:使用ls命令列舉Bucket內的檔案且未攜帶任何選項時,無法列舉片段、歷史版本檔案(僅存在於開啟過版本控制的Bucket)。若Bucket為非空(即Bucket中存在片段、歷史版本檔案),僅使用rm命令無法刪除該Bucket。

解決方案:

警告

Bucket及檔案被刪除後,無法恢複,請謹慎使用該命令。

  • 先刪除片段和歷史版本檔案(未開啟過版本控制請忽略),再刪除Bucket。

    1. 刪除片段和歷史版本檔案。

      • 列舉並刪除片段:

        ./ossutil64 ls oss://bucket1 -m
        ./ossutil64 rm -m oss://bucket1 -r
      • 列舉並刪除歷史版本檔案:

        ./ossutil64 ls oss://bucket1 --all-versions
        ./ossutil64 rm oss://bucket1 --all-versions -r
    2. 刪除Bucket。

      ./ossutil64 rm oss://bucket1 -b
  • 強制移除Bucket。

    • 若儲存空間未開啟版本控制,使用如下命令強制移除Bucket:

      ./ossutil64 rm oss://bucketname -abrf
    • 若儲存空間已開啟版本控制,使用如下命令強制移除Bucket:

      ./ossutil64 rm oss://bucketname -abrf --all-versions

檔案上傳、下載進度超過100%

問題分析:ossutil在上傳、下載檔案時,會自動產生一個名為.ossutil_checkpoint檔案夾。當目標檔案超過100 MB時,ossutil預設使用斷點續傳上傳或下載目標檔案,並將過程中產生的斷點資訊檔儲存在.ossutil_checkpoint檔案夾中。上傳、下載任務完成後,會自動刪除這個檔案夾。若單機運行超過一個ossutil執行個體,且都在進行上傳或下載任務,當其中一個ossutil的任務完成後,會自動刪除.ossutil_checkpoint檔案夾,導致其它需要使用斷點續傳的ossutil任務進度超過100%且無法完成。

解決方案:

  • 將當前任務結束,重新開始上傳、下載任務。

  • cp命令中加上--checkpoint-dir參數,並手動指定一個與預設checkpoint檔案夾不同名的檔案夾。例如:

    ./ossutil64 cp oss://bucket1/myphoto.jpg  /dir  --checkpoint-dir checkpoint

使用ossutil發起單個檔案的下載請求,但OSS日誌裡面有多條請求記錄

問題分析:出現該問題有兩種可能。

  • 請求異常或請求失敗時,ossutil會進行重試操作,預設為10次。

  • 如果您下載的檔案超過100 MB,ossutil會使用range方式去請求,即每次請求該檔案的部分內容,通過多次請求完成完整檔案的下載。因此,超過100 MB的檔案下載時也會產生多條請求記錄 。

使用ossutil下載檔案時,下載任務中斷怎麼辦

  1. 檔案下載任務中斷的情境與影響因素

    • 下載較大檔案時,可能出現下載時間過長,任務中斷的情況。

      影響因素:網路頻寬節流設定,網路穩定性較差。

    • 下載較大檔案時返回EOF錯誤碼,任務中斷。

      影響因素:網路中斷、磁碟讀寫速度較慢無法匹配大檔案高速下載的資料寫入需求。

  2. 解決方案:配置斷點檔案續傳。

    • 以cp命令為例,您可以在上傳檔案時設定斷點檔案(--checkpoint-dir),指定斷點續傳所在的目錄。

      ./ossutil64 cp examplefile.txt oss://examplebucket/desfolder/ --checkpoint-dir localfolder/
    • 關於如何設定斷點檔案(--checkpoint-dir),請參見命令格式

使用ossutil執行相關命令時,報錯Error: accessKeyID and ecsUrl are both empty

問題分析:未在home目錄下組建組態檔案。

解決方案:

  • 使用ossutil執行相關命令之前,需在目前使用者的home目錄下組建組態檔案。具體步驟,請參見安裝ossutil

  • 使用ossutil執行相關命令時單獨指定設定檔路徑。例如,通過cp命令上傳檔案時指定設定檔路徑:

    ./ossutil64 cp examplefile.txt oss://examplebucket/destfolder/ -c /home/admin/.ossutilconfig

通過ossutil上傳的檔案的content-type為什麼會有charset=utf-8

問題分析:上傳檔案時,ossutil會根據檔案的副檔名,尋找關聯的MIME類型來設定檔案的Content-Type。在尋找關聯的MIME類型時,會通過Go的標準庫MIME的介面尋找,該介面對於文本類型的會自動添加charset=utf-8,例如,對於.htm副檔名的檔案會返回text/html; charset=utf-8

解決方案:請升級到1.7.14及之後的版本。你可以通過重新安裝來升級ossutil,具體操作,請參見安裝ossutil

是否可以通過ossutil查詢一個目錄的大小

您可以通過du命令查詢目錄的大小,du命令會通過ListObjects介面擷取目錄下的所有檔案資訊,再進行統計。如果該目錄下的檔案數量很多,需要花費很長時間。

更多資訊,請參見du(擷取大小)

如何產生包含自訂網域名的簽名URL

  1. 為Bucket配置自訂網域名。

    具體操作,請參見配置自訂網域名

  2. 通過sign命令產生簽名URL。

    具體操作,請參見sign(產生簽名URL)

ossutil查詢檔案時,是否支援排序?

ossutil在查詢檔案時,不支援排序。

使用ossutil執行相關命令時,報錯no such host

問題原因:Endpoint設定不正確。

解決方案:正確設定-e參數,或者將Endpoint放入設定檔中。其中,-e參數指定Bucket對應的Endpoint,例如:-e oss-cn-shanghai.aliyuncs.com,Endpoint中請不要添加其他欄位。各地區Endpoint詳情,請參見訪問網域名稱和資料中心

du命令如何計費

du命令執行後,如果不開啟--all-versions,調用ListObjects介面;如果開啟--all-versions,調用ListObjectVersions介面。同時會調用ListMultipartUploads介面,產生對應的請求費用。更多資訊,請參見請求費用

說明

如果有分區,會額外產生 ListUploadedParts請求。