本文介紹OSS上傳和下載失敗的排查方法。
OSS文件上傳失敗
當上傳文件失敗時,請參見以下操作進行排查處理:
檢查本地與OSS的網絡是否存在異常。若存在網絡故障,請使用ping命令測試與OSS的網絡連通性,確保網絡正常后再進行下一步排查。
檢查上傳文件的大小是否超過限制。
通過OSS控制臺上傳、簡單上傳、表單上傳、追加上傳的方式上傳單個文件,文件的大小不能超過5 GB。如要上傳超過5 GB的文件,請參見如何上傳大文件到OSS。
通過分片上傳的方式上傳單個文件,文件的大小不能超過48.8 TB。
檢查當前上傳文件的賬號是否有上傳文件的權限。若為RAM用戶,請執行以下操作,檢查賬號是否擁有Bucket上傳文件的權限。若無權限,進行授權。更多信息,請參見通過Bucket Policy授權用戶訪問指定資源。
登錄訪問控制管理控制臺,選擇身份管理>用戶,選擇對應的RAM用戶。
單擊權限管理頁簽,確認是否已經賦予當前用戶Bucket或Object的操作權限。
請根據當前上傳文件的環境,檢查配置是否正常。
若您是使用OSS SDK上傳失敗,請檢查Endpoint地址、Bucket、Object、AccessKeyID和AccessKeySecret是否正常。
檢查OSS Bucket的Endpoint地址是否正確。
請確保使用正確的Endpoint地址訪問Bucket。例如Bucket所在地域為
oss-cn-hangzhou
,則外網Endpoint為oss-cn-hangzhou.aliyuncs.com
。有關Endpoint的更多信息,請參見OSS訪問域名使用規則。確認請求的Endpoint地址與Bucket實際的Endpoint地址一致。如果需要訪問青島和杭州兩個節點的Bucket,則創建多個ossclient,定義Endpoint時,將青島和杭州地域的地址都添加進去。各地域及不同網絡連接方式下的Endpoint信息請參見OSS內網域名與VIP網段對照表。
檢查AccessKeyID和AccessKeySecret的正確性。 確保代碼中使用的AccessKey和AccessKeySecret正確。
請確保Bucket與Object命名合法有效且符合要求。更多信息,請參見Bucket和Object命名規范。
Bucket的命名規范:只能包括小寫字母、數字和短劃線(-),必須以小寫字母或者數字開頭,長度必須在3~63字節之間。
Object的命名規范:使用UTF-8編碼,長度必須在1~1023字節之間,不能以
/
或者\
字符開頭。
若您是使用OSS常用工具上傳失敗,首先請參見OSS常用工具匯總,查看您所使用的工具的限制條件,根據您的使用場景,重新選擇使用工具,幫助您解決OSS上傳慢或者偶爾不能上傳的情況。建議您使用ossutil工具進行上傳,具體請參見命令行工具ossutil。
在進行文件上傳時如遇到以下對應問題,請按照對應的解決方案進行處理。
OSS文件下載失敗
當下載文件失敗時,請參見以下操作進行排查處理:
檢查本地與OSS的網絡是否存在異常。若存在網絡故障,請解決網絡故障,確保網絡正常后再進行下一步排查。
檢查下載文件的數量是否超過限制。通過OSS控制臺可一次批量下載最多100個文件。
請參見OSS上傳文件失敗中的步驟3和步驟4,排查配置是否正確。
使用以下OSS工具通過斷點續傳方式下載:
在使用OSS文件下載相關功能時,如果遇到以下問題,可參考其對應的案例進行解決。
更多信息
OSS SDK上傳文件主要包括以下幾種上傳方式,請根據不同上傳方式的特性,選擇合理的上傳方式進行重新配置。
簡單上傳:適用于一次HTTP請求交互即可完成上傳的場景,例如小文件(小于5 GB)的上傳。
表單上傳:是指使用OSS API中的PostObject請求來完成Object的上傳,上傳的Object不能超過5 GB。
分片上傳和斷點續傳:當使用簡單上傳(PutObject)功能來上傳較大的文件到OSS的時候,如果上傳的過程中出現了網絡錯誤,那么此次上傳失敗,重試必須從文件起始位置上傳。針對這種情況,您可以使用分片上傳來達到斷點續傳的效果。相對于其他的上傳方式,分片上傳適用于以下場景:
惡劣的網絡環境:如手機端,當出現上傳失敗的時候,可以對失敗的Part進行獨立的重試,而不需要重新上傳其他的Part。
斷點續傳:中途暫停之后,可以從上次上傳完成的Part的位置繼續上傳。
加速上傳:要上傳到OSS的本地文件很大的時候,可以并行上傳多個Part以加快上傳。
流式上傳:可以在需要上傳的文件大小還不確定的情況下開始上傳。這種場景在視頻監控等行業應用中比較常見。
追加上傳:追加上傳指的是使用OSS API中的AppendObject在已上傳的Appendable Object類型文件后面直接追加內容。
客戶端直傳:客戶端直傳是指客戶端直接上傳文件到對象存儲OSS。相對于服務端代理上傳,客戶端直傳避免了業務服務器中轉文件,提高了上傳速度,節省了服務器資源。
RTMP推流上傳:OSS支持使用RTMP協議推送H264編碼的視頻流和AAC編碼的音頻流到OSS,推送到OSS的音視頻數據可以點播播放。在對延遲不敏感的應用場景,也可以做直播用途。