AWS S3にあるファイルをフォルダごとコピーする

・概要

S3のバケットに格納したファイルをダウンロードする場合、ファイル単位でしか実行ができません。フォルダごとダウンロードできたら便利と思いますので、今回はその方法について記述します。


・やりかた

GUIで実行しようとする場合、何かしらツールが必要になりそうなので今回はAWS-CLIを利用してコマンドレベルで実行をします。

もし作業端末にAWS-CLIがインストールされていない場合は、以下より最新版をインストールください。

 AWS-CLI最新(公式)

作業手順は以下の通りとします。

 ・S3を触れるユーザを作成する(すでにいる場合は本手順は不要)
 ・AWS-CLIの初期設定
 ・ファイルダウンロードの実行


・設定とファイルダウンロードの実行

 ・S3を触れるユーザを作成する(すでにいる場合は本手順は不要)

  まずS3を触れるユーザを作成します。既にS3が触れるユーザがある場合、本手順は不要です。

  検索窓より、「iam」を入力し、「IAM」を選択します。

  左メニューの「ユーザー」から「ユーザーを追加」を選択します。

  ユーザー名を入力し、「アクセスの種類:プログラムによるアクセス」にチェックを入れます。
  「次のステップ:アクセス権限」を押下します。

  「既存のポリシーを直接アタッチ」を選択し、「ポリシーのフィルタ」に「S3」と入力します。
  「AmazonS3ReadOnlyAccess」にチェックを入れて「次のステップ:タグ」を押下します。

  タグの追加では、管理しやすいような名前などを付けて「次のステップ:確認」を押下します。

  設定した内容を確認し、「ユーザーの作成」を押下して完了です。

  最後に「アクセスキーID」と「シークレットアクセスキー」を控えておきましょう。

 ・AWS-CLIの初期設定

  先ほど作成したユーザーで、S3を触れるように設定をします。
  コマンドプロンプトを起動し、「aws configure」を入力します。
  (コマンドプロンプト起動は「Windowsボタン + R」で「名前」の欄に「cmd」と入力、OKを押下)

  以下4項目を入力すれば完了です。

   ①AWS Access Key ID
   ②AWS Secret Access Key
   ③Default region name
   ④Default output format

  ①、②は先ほど作成したユーザーのものを記入します。
  ③のリージョンは右上にあるドロップダウンリストから確認して入力します。
  ④は何もしなくてもよいでしょう。

  これで全ての設定は完了です。

 ・ファイルダウンロードの実行

  では早速ファイルをダウンロードしましょう。以下のようにコマンドを実行します。

#まず何が入っているか確認(以下ではバケットhogehogeにフォルダmutekingがあると表示している)
C:\>aws s3 ls hogehoge
              PRE muteking/
#ダウンロードしたいフォルダ内のファイルを確認してみる
C:\>aws s3 ls hogehoge/muteking/
2021-06-25 15:28:02          0
2021-06-25 17:08:38         18 test1.txt
2021-06-25 17:08:38         18 test2.txt
2021-06-25 17:08:35         18 test3.txt
2021-06-25 17:08:35         18 test4.txt
2021-06-25 17:08:36         18 test5.txt
2021-06-25 17:08:37         18 test6.txt
2021-06-25 17:08:37         18 test7.txt
2021-06-25 17:08:37         18 test8.txt
2021-06-25 17:08:38         18 test9.txt

#ではフォルダ配下にあるファイルを全てダウンロードしてみましょう
C:\>aws s3 cp s3://hogehoge/muteking/ c:\test --recursive
download: s3://hogehoge/muteking/test1.txt to ..\..\test\test1.txt
download: s3://hogehoge/muteking/test6.txt to ..\..\test\test6.txt
download: s3://hogehoge/muteking/test3.txt to ..\..\test\test3.txt
download: s3://hogehoge/muteking/test9.txt to ..\..\test\test9.txt
download: s3://hogehoge/muteking/test4.txt to ..\..\test\test4.txt
download: s3://hogehoge/muteking/test7.txt to ..\..\test\test7.txt
download: s3://hogehoge/muteking/test2.txt to ..\..\test\test2.txt
download: s3://hogehoge/muteking/test8.txt to ..\..\test\test8.txt
download: s3://hogehoge/muteking/test5.txt to ..\..\test\test5.txt

  コピーコマンドにオプション「–recursive」を付けることで、フォルダ配下全てのファイルをコピーできました。


・注意点

本件で登場したアクセスキーIDとシークレットキーはとても大切なものです。漏洩すると影響がとても大きいので管理には細心の注意をお願いします。また利用しないのであれば無効化しておくこともよいでしょう。


返信を残す

メールアドレスが公開されることはありません。

CAPTCHA