🐈
AWS CLIをインストールしてコマンドラインからAWS S3内のファイルを一括ダウンロードをしたい
業務の都合でS3からファイルを一括ダウンロードする必要がありました。そもそも今使っているMac Bookは以前記事に書いた通り乗り換えたばかりの新品だったためコマンドすらない状態だったので、導入とエラーの解決までのメモです。
インストール前実行
まず使用中のMac Bookで何もインストールせずこちらのコマンドを実行しました。
$ aws s3 sync s3://xxxx.co.jp .
当然そんなコマンドは存在しないので以下のエラーで返却されます。
-bash: aws: command not found
AWS CLIのパッケージをインストール
AWSC LIインストールを実行します。
$ brew install awscli
Running `brew update --auto-update`...
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:4ffc8607e08e9bd536f1df71643b2ecb4cea1a15be9226f297008bc34d0bc8e2
#################################################################################################################################################### 100.0%
==> Pouring portable-ruby-3.3.7.el_capitan.bottle.tar.gz
インストール
==> Fetching python@3.12
$ aws --v
aws-cli/2.24.19 Python/3.12.9 Darwin/24.2.0 source/x86_64
正しくインストールしたことを確認するためバージョン確認をしてみました。問題なさそうです。
認証情報の入力
インストールは以上で終わりましたが、それだけではawsコマンドは動きませんでした。configを確認したところ、当たり前ですが認証情報を設定していなかったことを理解しました。
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
そこでAWS_ACCESS_KEY_ID
及び AWS_SECRET_ACCESS_KEY
を設定します。
export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=yyyyyyyyyyyyyyyyyyyyyyyy
もう一度config情報を確認し、設定されていることを確認します。
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************xxxx env
secret_key ****************yyyy env
region <not set> None None
ダウンロード実行
準備が整ったので再度awsコマンドでファイル一括ダウンロードを実行します。
$ aws s3 sync s3://xxxx.co.jp .
途中でdeveloperツールをインストールするよう言われるので同意しましたが、それ以外は特に何もなく一括ダウンロードが実行されました。
download: s3://xxxx.co.jp/file/hogehoge.jpg to file/hogehoge.jpg
・
・
・
注意点
こちらのコマンドを実行するとS3のオブジェクト取得の料金が掛かります。
格納されているファイルの容量によっては一括ダウンロードするととんでもない金額がかかる可能性もあります。自分が取得しようとしているバケット内の容量には注意が必要です。
Amazon S3 料金ページ(https://aws.amazon.com/jp/s3/pricing/)
Discussion