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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Certificate Manager(ACM)メール検証をDNS検証の証明書に差し替えました
ブログの証明書 このブログの証明書の有効期限があと1週間です。 証明書はAWS …
-
-
Amazon Q Developer for CLIでAWS Diagram MCP Serverを使ってAWSアイコンを使った図を書いてもらいました
MacにインストールしているAmazon Q Developer for CLI …
-
-
LINE Bot APIのファーストステップをLambda+API Gatewayでやってみたらものすごく簡単で驚いた
トライアル当初はホワイトリストのしばりや、初回反応するまで時間がかかったりとみな …
-
-
cfn-initでEC2インスタンスにPHPをインストールしWebサーバーを起動する
AWS CloudFormation による Amazon EC2 へのアプリケ …
-
-
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)
先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …
-
-
CloudFrontからのバーチャルホストなサイトのテストってどうしてます?
このブログの構成です。 AWSで構築しています。 4つのサイトを1つのEC2で配 …
-
-
EC2 プレイスメントグループを試してみました
やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …
-
-
CodeDeployでECR、ECSにデプロイするパイプラインのチュートリアル
チュートリアル: Amazon ECR ソースと、ECS と CodeDeplo …
-
-
BearからNotionへの引っ越し(Amazon Q Developer for CLIに丸投げ)
MacとiPhoneでのテキスト管理と共有で長年Bearを使っていましたが、Wi …
-
-
執筆環境(PyCharm, CodeCommit, CodePipeline, S3, Lambda, 署名付きURL)
2018年から、年に1回ぐらい商業本の執筆をさせていただいております。 2020 …
