本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
本文介紹在使用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。
刪除碎片和歷史版本文件。
列舉并刪除碎片:
./ossutil64 ls oss://bucket1 -m ./ossutil64 rm -m oss://bucket1 -r
列舉并刪除歷史版本文件:
./ossutil64 ls oss://bucket1 --all-versions ./ossutil64 rm oss://bucket1 --all-versions -r
刪除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下載文件時,下載任務中斷怎么辦
文件下載任務中斷的場景與影響因素
下載較大文件時,可能出現下載時間過長,任務中斷的情況。
影響因素:網絡帶寬限制,網絡穩定性較差。
下載較大文件時返回EOF錯誤碼,任務中斷。
影響因素:網絡中斷、磁盤讀寫速度較慢無法匹配大文件高速下載的數據寫入需求。
解決方案:配置斷點文件續傳。
以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
為Bucket配置自定義域名。
具體操作,請參見配置自定義域名。
通過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請求。