🐈

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/)

ファースト・スクラッチTech Blog

Discussion