[英]Amazon S3 - multipart upload vs split files-then-upload
我目前正在嘗試使用python將文件從本地上傳到S3。 我有非常大的文件(超過10 GB),當我通過一些最佳實踐來加快上傳時,我遇到了分段上傳。 如果我理解正確,分段上傳會做以下事情:
因為,在所有塊的上載結束之后,很明顯多部分上傳將所有內容組裝成單個對象。 但是,我希望保持各個部分不變,或者找到另一種方法來分割文件並使用python boto的put_object方法上傳。 這是因為,我希望從S3並行讀取文件的各個塊/部分以供我進一步處理。 有沒有辦法做到這一點,或者我應該堅持自己拆分文件並將其並行上傳(以便更快上傳)的傳統方式。
提前致謝。
我們遇到了同樣的問題,這是我們采取的方法。
啟用傳輸加速
你的水桶。
https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
如果您的上傳帶寬有限,則拆分文件沒有意義。
如果您擁有巨大的上傳帶寬且單個加速端點不占用整個上傳帶寬,則可以拆分文件並使用multipart上傳它們。
使用multiparts上傳單個S3對象/文件:
以下鏈接中包含詳細說明。
https://aws.amazon.com/premiumsupport/knowledge-center/s3-multipart-upload-cli/
創建分段上傳:
aws s3api create-multipart-upload --bucket multirecv --key testfile --metadata md5 = mvhFZXpr7J5u0ooXDoZ / 4Q ==
上傳文件部分:
AWS s3api上傳部分--bucket multirecv --key testfile的--Part數1 --body testfile.001 --upload-ID sDCDOJiTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk --content-MD5 Vuoo2L6aAmjr + 4sRXUwf0w ==
完成上傳:
aws s3api list-parts --bucket multirecv --key testfile --upload-id sDCDOJiTUVGeKAk3Ob7qMynRKqe3ROcavPRw9522AA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk
希望能幫助到你。
EDIT1
從S3部分閱讀:
使用S3,您無需讀取完整對象。 您可以指定對象的起始范圍和結束范圍。 您不需要在S3中維護拆分。 您可以維護為單個對象。 下面的命令將幫助您部分閱讀它。
還有一個好處是,您也可以平行閱讀它們。
aws s3api get-object --bucket my_bucket --key object / location / file.txt file1.range-1000-2000.txt --range bytes = 1000-2000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.