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
関連記事
-
-
CloudFrontからのバーチャルホストなサイトのテストってどうしてます?
このブログの構成です。 AWSで構築しています。 4つのサイトを1つのEC2で配 …
-
-
CloudWatch LogsをIPv6アドレスを使用して送信する
このブログの構成からパブリックIPv4を減らすように設計変更しています。 もとも …
-
-
AWS Client VPNを設定しました
ユーザーガイドのクライアント VPN の開始方法に沿ってやりました。 AWSクラ …
-
-
iPad ProのWorking CopyでAWS CodeCommitのリポジトリを使う
iPad Proを導入しましたので、原稿執筆や校正でフル活用しようと思いまして。 …
-
-
Cloud9 Python3でpipも3にする
このブログは、2019/10/20に書いた、 Cloud9のAMIがCloud9 …
-
-
AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night
AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …
-
-
EC2ユーザーデータからメタデータを取得してRocket.Chatで80ポートを使用する
Rocket.Chatのデフォルトポート番号は3000です。 80を使うようにす …
-
-
「ポケットスタディ AWS認定 デベロッパーアソシエイト」を執筆しました
2021年3月6日に、「ポケットスタディ AWS認定 デベロッパーアソシエイト」 …
-
-
API Gatewayで顧客レベルの使用量プランを設定する
API GatewayのAPIキーを使って使用量プランでのスロットリングも設定し …
-
-
Transit GatewayポリシーテーブルでCloud WANのコアネットワークに接続しました
「ポリシーテーブルってなんですか?」のご質問をいただいたので設定してみました。 …