AWS CLIでS3マルチパートアップロードを確認
AWS CLI を使用して、Amazon S3 にファイルをマルチパートアップロードする方法を教えてください。に記載の方法を確認しました。
レスポンス値をそれぞれ確認したかったので実行しました。
記録として残します。
AWS CLIでマルチパートアップロードを実行
環境はCloudShellです。
約13MBのlarge_file.zipを次のコマンドで2つに分割して、large_file.001とlarge_file.002として保存しました。
1 2 |
split -n 2 large_file.zip |
それぞれ6.5MBぐらいになりました。
マルチパートアップロードの開始
1 2 |
aws s3api create-multipart-upload --bucket bucketname --key large_file.zip |
create-multipart-uploadを実行しました。
1 2 3 4 5 6 |
{ "Bucket": "bucketname", "Key": "large_file.zip", "UploadId": "9xH2tmxB03gW02C.bGAwyuDQ5vANbPjP3RfxzSMsx_KSy9sn0upK8D4zbF7TagsZBudWlHc.PlgMeKCVlWMVBmVeqac5y.PdPQ5OZWDZaveXMRRrc0CvuUBpMK4TnECKhVGPnyCn_nRUVZpRqmjQww--" } |
UploadIdが返されました。
この後のコマンドで使いました。
パートのアップロード
1 2 |
aws s3api upload-part --bucket bucketname --key large_file.zip --part-number 1 --body large_file.001 --upload-id 9xH2tmxB03gW02C.bGAwyuDQ5vANbPjP3RfxzSMsx_KSy9sn0upK8D4zbF7TagsZBudWlHc.PlgMeKCVlWMVBmVeqac5y.PdPQ5OZWDZaveXMRRrc0CvuUBpMK4TnECKhVGPnyCn_nRUVZpRqmjQww-- |
1 2 3 4 |
{ "ETag": "\"af882da44481517acdaa3bf6b362f7a5\"" } |
ETag(エンティティタグ)値が返ってきました。
1 2 |
aws s3api upload-part --bucket bucketname --key large_file.zip --part-number 2 --body large_file.002 --upload-id 9xH2tmxB03gW02C.bGAwyuDQ5vANbPjP3RfxzSMsx_KSy9sn0upK8D4zbF7TagsZBudWlHc.PlgMeKCVlWMVBmVeqac5y.PdPQ5OZWDZaveXMRRrc0CvuUBpMK4TnECKhVGPnyCn_nRUVZpRqmjQww-- |
1 2 3 4 |
{ "ETag": "\"18eb8a7ec69006e84107d3ab418e2402\"" } |
2つ目のパートも無事アップロードできてETag値が返ってきました。
パートのリストを確認
1 2 |
aws s3api list-parts --bucket bucketname --key large_file.zip --upload-id 9xH2tmxB03gW02C.bGAwyuDQ5vANbPjP3RfxzSMsx_KSy9sn0upK8D4zbF7TagsZBudWlHc.PlgMeKCVlWMVBmVeqac5y.PdPQ5OZWDZaveXMRRrc0CvuUBpMK4TnECKhVGPnyCn_nRUVZpRqmjQww-- |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "Parts": [ { "PartNumber": 1, "LastModified": "2022-09-13T13:28:22+00:00", "ETag": "\"af882da44481517acdaa3bf6b362f7a5\"", "Size": 6769862 }, { "PartNumber": 2, "LastModified": "2022-09-13T13:28:48+00:00", "ETag": "\"18eb8a7ec69006e84107d3ab418e2402\"", "Size": 6769862 } ], "ChecksumAlgorithm": null, "Initiator": { "ID": "arn:aws:sts::123456789012:assumed-role/RoleName/yamashita", "DisplayName": "RoleName/yamashita" }, "Owner": { "DisplayName": "yamashita", "ID": "xxxxxxxxxxxxxxxxx" }, "StorageClass": "STANDARD" } |
リストが返ってきました。
ここでもパートのETag値が確認できました。
ETag値のコンパイル
各パートのETag値とパート番号をJSONファイルに書き込みます。
fileparts.jsonという名前で作成しました。
1 2 3 4 5 6 7 8 9 10 11 |
{ "Parts": [{ "ETag": "\"fa8f294721ab3fbb37793c68ff2cf09b\"", "PartNumber":1 }, { "ETag": "\"c11ed05ff2ae3434e4a2dd630b7f8434\"", "PartNumber":2 }] } |
マルチパートアップロードの完了
1 2 |
aws s3api complete-multipart-upload --multipart-upload file://fileparts.json --bucket bucketname --key large_file.zip --upload-id 9xH2tmxB03gW02C.bGAwyuDQ5vANbPjP3RfxzSMsx_KSy9sn0upK8D4zbF7TagsZBudWlHc.PlgMeKCVlWMVBmVeqac5y.PdPQ5OZWDZaveXMRRrc0CvuUBpMK4TnECKhVGPnyCn_nRUVZpRqmjQww-- |
1 2 3 4 5 6 7 8 |
{ "VersionId": "ut6KcrcMmQ0E7FdrFeQZgXBs1v.F4VuT", "Location": "https://bucketname.s3.us-east-1.amazonaws.com/large_file.zip", "Bucket": "bucketname", "Key": "large_file.zip", "ETag": "\"6b806f13475be98c421759399ab21a71-2\"" } |
マルチパートアップロードが完了して、1つのオブジェクトとして作成されました。
2つのパートでしたので、ETagの後ろに-2 がついています。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS GlueでAurora JDBC接続でS3へのジョブを実行
Aurora Serverless v1のMySQLタイプデータベースからS3へ …
-
-
AWS WAFの個別ルールを設定する
Web ACLを選択して、[Add my own rules and rule …
-
-
AWSのサービス数を数えてみました(2020/5/23)
何をもってサービスという単位にするかというのはあるかもしれませんが、とりあえず情 …
-
-
AWS複数アカウントのリソースをLambda(Python)から一括操作したくて
AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …
-
-
試そうとしてたらSavings Plans買っちゃいました
Savings Plansの購入画面を確認していました。 画面遷移も確認しようと …
-
-
Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で
Elastic Beanstalk への flask アプリケーションのデプロイ …
-
-
ChatGPT APIをTeamsボットから使いました(AWS Lambda(Python) + API Gateway)
ChatGPT APIが有償で利用可能になったので、会社のTeamsボットに実装 …
-
-
Amazon Cognito User Poolsのデモをしてみました
AWS Summit 2016 Tokyoのアップデートおっかけ会をJAWS-U …
-
-
VPC新コンソールの日本語UIでルートテーブル編集時のエラー(2021/6/10)が発生したのでフィードバックを送った
VPCの新コンソールがリリースされていたので使って作業してましたところ、こんなエ …
-
-
AWS Toolkit for Eclipseをセットアップ(2021年版)
AWS Toolkit for Eclipseをセットアップするで6年前に書いて …