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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
-
Route 53で不要なドメインを削除
勢いで作ったけど結局使うのをやめたドメインがあります。 要らないので削除しました …
-
-
S3バケットポリシーでクロスアカウントのPrincipalについて確認
確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …
-
-
PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる
JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …
-
-
AWS Lambda(Python)からTwitterに投稿する
「GoogleフォームからAPI Gatewayで作成したREST APIにPO …
-
-
Rocket.ChatのOutGoingWebhookからのAPI GatewayからのDynamoDB
少し前に、Rocket.ChatからOut Going Webhookを設定して …
-
-
AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する
参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …
-
-
Amazon Linux 2023、T4Gインスタンス、PHP8にWordPressを移行しました
ブログをAmazon Linux 2からAmazon Linux 2023に移行 …
-
-
AWS Transfer Family EFS向けのSFTP対応サーバー
EFSファイルシステムは作成済です。 AWS Transfer Family S …
-
-
LMA(amazon-transcribe-live-meeting-assistant)を海外とのインタビューミーティングで使ってみました
amazon-transcribe-live-meeting-assistant …
