{S3}マルチパートアップロードの AWS Command Line Interface サポート

https://blog.katsubemakito.net/aws/s3-multipartupload
https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-multipart-upload-cli/


aws s3 コマンドはファイルサイズに応じてマルチパートアップロードおよびマルチパートダウンロードを自動的に実行するため、
マルチパートアップロードおよびマルチパートダウンロードには、aws s3 コマンド (aws s3 cp など) を使用することがベストプラクティスです。

通常、オブジェクトサイズが 100 MB 以上の場合は、単一のオペレーションでオブジェクトをアップロードする代わりに、
マルチパートアップロードを使用することを考慮してください。

マルチパートアップロードを完了または停止した後でのみ、Amazon S3 はパートのストレージを解放して、パートのストレージに対する課金を停止します。

AWS SDKREST API、または AWS CLI を使用して 1 回のオペレーションでオブジェクトをアップロードする -> 1 回の PUT オペレーションでは、最大 5 GB の単一のオブジェクトをアップロードできます。
AWS SDKREST API、または AWS CLI を使用してオブジェクトをいくつかに分けてアップロードする -> マルチパートアップロード API を使用すると、最大 5 TB のサイズの単一の大容量オブジェクトをアップロードできます。
Amazon S3 コンソールを使用して 1 つのオブジェクトをアップロードする ->Amazon S3 コンソールでは、最大 160 GB のオブジェクトをアップロードできます。


-- 1. S3 バケットを作成する

aws s3 mb s3://bucket123
aws s3 ls

 

-- 2. マルチパートアップロード切替閾値の設定
Default -> 8MB

aws configure set default.s3.multipart_threshold 100GB
aws configure set default.s3.multipart_threshold 8MB

aws configure get default.s3.multipart_threshold

※設定していない場合は何も表示されない
設定するとconfigファイルに書き込まれる

 

-- 3. 動作確認

dd if=/dev/urandom of=5G.dmp bs=5M count=1024

time aws s3 cp 5G.dmp s3://bucket123


マルチパートアップロード無効の場合
real    1m18.624s

マルチパートアップロード有効の場合
real    0m41.607s

 

-- 4. クリーンアップ
-- バケットの削除
aws s3 ls s3://bucket123 --recursive
aws s3 rb s3://bucket123 --force
aws s3 ls