2013-03-08 49 views

回答

11

我用S3 Tools,它會自動使用多上傳功能爲所有PUT命令超過15MB的文件較大:

多部分默認情況下,並踢了超過15MB 更大的文件啓用。您可以設置此treshold低至5MB(亞馬遜的限制)與 -multipart的塊大小-MB = 5或5和5120 MB之間的任何值

安裝和配置後,就發出以下命令:

~$ s3cmd put largefile.zip s3://bucketname/largefile.zip 

或者,你可以只使用在命令行split您的zip文件:

split -b1024m largefile.zip largefile.zip- 

,後來你的文件系統ü重組唱:

cat largefile.zip-* > largefile.zip 

如果選擇第二個選項,您可能希望保存之前的文件的MD5哈希上傳,所以你可以驗證歸檔文件的完整性,當它後來的重組。

+0

它沒有做多部分上傳*並聯*,這傷害了它的速度。它還會發布有關S3失敗的錯誤消息(這是S3所做的,會克服它)並嘗試減慢甚至更多。 – 2015-11-01 19:03:06

5

boto library包含一個名爲s3put的s3命令行工具,可以處理大文件的分段上傳。

6

官方AWS Command Line Interface支持多部分上傳。 (它使用boto繼任botocore引擎蓋下):

的AWS命令行界面(CLI)是管理AWS服務的統一工具。只需下載和配置一個工具,就可以從命令行控制多個AWS服務,並通過腳本自動執行它們。

在這個統一的方法對所有AWS API之上,還增加了一套新的簡單file commands高效的文件傳輸和從Amazon S3,類似於著名的Unix命令,如特徵:

  • ls - 在前綴或所有S3存儲桶下列出S3對象和通用前綴。
  • cp - 在本地或在S3中將本地文件或S3對象複製到其他位置。
  • sync - 同步目錄和S3前綴。
  • ...

所以cp就足以用例在手,但一定要檢查出sync爲好,這是特別強大許多經常遇到的情景(和排序的暗示cp取決於參數)。

+0

AWS CLI以7.3 MB/s的速度完全飽和了我的連接,並沒有失敗。我爲1GB文件嘗試了S3 Tools,並且它一直顯示錯誤並且僅以2-3 MB/s的速度上傳。 – 2015-11-01 18:56:58

+0

根據此文件,截至2015年9月,aws s3 cp應該足夠:https://aws.amazon.com/blogs/apn/getting-the-most-out-of-the-amazon-s3-cli/ – einarc 2015-12-09 21:00:20

1

我個人創建了python文件s3upload.py用簡單的函數使用boto和分段上傳來上傳大文件。

現在,每當我需要上傳大文件的時候,我就是這樣運行命令:

python s3upload.py bucketname extremely_large_file.txt 

更多細節及功能的代碼,可以發現here

0

我剛開始使用s4cmd,它處理的50GB文件就好了

相關問題