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
関連記事
-  
              
- 
      RDSリザーブドDBインスタンスを購入しましたリザーブドインスタンス推奨事項を確認したで確認した結果、購入したほうがよさそうで … 
-  
              
- 
      AWS Wavelengthゾーンを有効にする画面上で確認しておきたかったので有効にしておきました。 AWS Waveleng … 
-  
              
- 
      EC2 Ubuntu DesktopにRDPUbuntu Desktopが必要になりましたので、こちらのAWS EC2でデス … 
-  
              
- 
      Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿するMicrosoft Teamsの検証を始めましたので、Slackで自動化している … 
-  
              
- 
      Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編Backlogの実績工数をAmazon QuickSightで可視化してわかった … 
-  
              
- 
      Amazon VPCでIPv6を使用するVPCのIPv6を設定してみました。 設定 [Amazon 提供の IPv6 C … 
-  
              
- 
      VPC新コンソールの日本語UIでルートテーブル編集時のエラー(2021/6/10)が発生したのでフィードバックを送ったVPCの新コンソールがリリースされていたので使って作業してましたところ、こんなエ … 
-  
              
- 
      AWS Lambdaで「Process exited before completing request」AWS lambdaで「Process exited before comple … 
-  
              
- 
      slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら … 
-  
              
- 
      API Gateway Lambdaプロキシ統合で渡されるリクエストを確認しましたAPI Gatewayの統合リクエストでLambdaを指定するときにプロキシ統合 … 

