S3のデータをフォルダごとダウンロードする【AWS】
AWSのS3のバケット内の、フォルダの中身を丸ごとをダウンロードします。
GUI(マネジメントコンソール)にフォルダごとダウンロードするアクションがなかったので(前はあったっぽい?)aws cliでやる手順の備忘録となります。
AWS CLI(AWS コマンドラインインターフェイス)のインストール
https://aws.amazon.com/jp/cli/ にアクセスします。
今回私の環境はWindowsなので右ペインからWindowsの欄からインストーラをダウンロードします。
ダウンロードしたらインストーラを起動してインストールします。
インストールが完了したら適当なターミナルを開き
aws --version
を実行し、aws-cli/...
的な出力が返ってくればインストールされています。
※ インストールする前からターミナルを開いていた場合は、開き直してください。
S3のデータをフォルダごとダウンロードする
今回はmy-download-test
というバケット内にあるimages
というフォルダの中身を丸ごとダウンロードします。
ターミナルで以下の作業を行います。
- 【準備】対象のAWSアカウントのクレデンシャルを設定する。
(私の場合awsアクセスポータルを使用する環境のため)アクセスポータルより、対象のawsアカウントのAccess key
をクリックします。
私のターミナルの場合PowerShell
で起動しているので、PowerShell
タブを開き、Option 1: Set AWS environment variables
の欄にある、一時的なクレデンシャルをセットするコマンドをコピーします。
コピー内容をターミナル内にペーストしてEnterで実行してクレデンシャルをセットします。(これをしておかないとこのあとのawsコマンドを実行しようとしても権限がなくてエラーになります) - AWSにて対象のフォルダの「S3 URI」を控える
対象のフォルダを選択してS3 URI をコピー
をクリックします。
すると以下のような値をコピーできます。
s3://my-download-test/images/
- aws cliコマンドでフォルダ内のファイルを一括ダウンロード
先ほど控えた値を使って、ターミナルにて以下のコマンドを実行します。
※ファイルをダウンロードしたいディレクトリに移動してから実行してください。
aws s3 cp s3://my-download-test/images/ ./ --recursive
これでダウンロードできるはずです。
【補足】
--recursive
は再帰的に実行するオプションで、これによりimages
内のファイルをすべてダウンロードできます。./
を指定しているのでカレントディレクトリにダウンロードされます。
以上です。
Share this post