全部產品
Search
文件中心

Object Storage Service:如何上傳超過5 GB的大檔案到OSS

更新時間:Jun 19, 2024

Object Storage Service支援通過多種方式上傳檔案。對於大檔案(超過5 GB的檔案),可能存在上傳失敗或者上傳慢的情況。此時您可以通過分區上傳、斷點續傳、ossbrowser工具、ossutil工具等多種方式上傳大檔案。

上傳方式

單個檔案的大小限制為0~48.8 TB。當您需要上傳大檔案或一次性上傳較多檔案時,若遇到以下兩種情況,可以採用多種方式上傳大檔案到OSS。

  • 單個檔案超過5GB,且無法通過OSS控制台上傳、簡單上傳、表單上傳、追加上傳的方式上傳單個檔案。

  • 檔案雖然小於5GB,但網路環境較差,經常因網路原因導致連線逾時或串連斷開等情況,上傳容易失敗。

方式一:分區上傳或斷點續傳

適用情境如下:

  • 單個檔案大小超過5 GB。

  • 流式上傳:當對檔案大小還不確定的情況下,就開始上傳。比如視頻監控等行業的雲錄影應用。

  • 惡劣的網路環境:需要斷點續傳大檔案。如手機端,當出現上傳失敗的時候,可以對失敗的分區進行獨立的重試,而不需要重新上傳其他的分區。

  • 加速上傳:要上傳到OSS的本地檔案很大的時候,可以並行上傳多個分區以加快上傳速度。

更多資訊,請參見:分區上傳斷點續傳上傳

方式二:使用ossbrowser工具上傳

ossbrowser工具的使用說明如下:

  • ossbrowser支援臨時授權碼登入。

  • 當前登入ossbrowser的AK擁有RAM的配置操作許可權時,可以使用簡化Policy授權。

  • 上傳檔案較多時,可通過增加上傳任務數,提高上傳速度。

  • ossbrowser預設使用分區上傳和斷點續傳上傳檔案,上傳檔案最大不能超過48.8 TB。

更多資訊,請參見快速使用ossbrowser

方式三:使用ossutil工具上傳

ossutil工具的使用說明如下:

  • 可以使用ossutil命令列工具的cp命令上傳大檔案。

  • 可通過--bigfile-threshold 參數控制分區並發上傳的檔案大小閾值。

  • ossutil上傳單個或多個大檔案時,可以通過-jobs項和-parallel項,控制並發,最佳化上傳效能。

  • 如果需要上傳大批量的檔案(包括大檔案)到OSS,也可以使用ossimport工具。

  • 當檔案數目不是特別多,建議優先使用ossutil。

更多資訊,請參見上傳檔案

常見問題

上傳大檔案的常見問題如下:

  • 使用簡單上傳(PutObject)上傳大檔案無法成功,原因可能如下。

    • 檔案大小超過5 GB。 您可以使用ossutil,通過分塊上傳的介面將大檔案分成多個小的分塊進行上傳。

    • 檔案小於5 GB,可能由於網路環境原因,出現上傳小檔案正常,但上傳較大檔案時,請求發出去就收不到任何響應,直至逾時的情況。這有可能是伺服器的MTU設定較大導致的。您可在ECS上執行netstat -i擷取當前的MTU設定值。如下圖獲得預設的內外網網卡的MTU都是1500。 mtu

      • 將原生MTU改小一些。Linux下通過ip link set dev eth0 mtu 1470命令修改MTU(此處以ECS通過eth0內網訪問OSS調整MTU值為1470)。

      • 使用分區上傳介面或ossutil工具。

  • 上傳單個大檔案時能不能並發上傳。

    • 使用ossutil上傳時,可以通過--bigfile-threshold-jobs和-parallel選項進行上傳。

    • 使用OSS API、SDK的分區上傳介面時,可以根據需要編寫並發調用上傳介面的代碼。同時,部分SDK也已實現分區上傳的並發控制,如Java SDK通過taskNum,Python SDK通過num_threads參數控制。