🪣
AWS CLIでS3からフォルダごとダウンロードする
はじめに
先日S3からログフォルダをダウンロードする必要があったのですが、フォルダを選択してもダウンロードボタンが無効化されてしまいました。。
現状コンソールからは1ファイル毎しかダウンロードできない仕様なんですね。。
※UIの感じだとできそうなのに。。
ただAWS CLIを利用すればフォルダ毎ダウンロードできるようなので、やってみました。
ファイルのダウンロード
ファイル単体の場合は、以下コマンドでダウンロードできます。
aws s3 cp s3://{バケット名}/{フォルダ名}/{ファイル名} {ローカルの保存先}
保存先を指定する場合は、ファイル名まで指定する必要があります。
例)
aws s3 cp s3://hoge_bucket/logs/test.log d:\logs\test.log
コマンドを実行するフォルダにダウンロードする場合は、保存先にカレントディレクトリを表す「./」指定します。
この場合ファイル名の指定は必要ありません。
例)
aws s3 cp s3://hoge_bucket/logs/test.log ./
フォルダごとダウンロード
フォルダごとダウンロードする場合は、以下コマンドでダウンロードできます。
再帰処理のオプション「--recursive」を付加することで、指定したフォルダ内のフォルダを全てダウンロードできます。
aws s3 cp s3://{バケット名}/{フォルダ名} {ローカルの保存先} --recursive
例)
aws s3 cp s3://hoge_bucket/logs d:\logs --recursive
まとめ
今回はAWS CLIからダウンロードしてみましたが、Cyberduckというツールを利用すれば、GUIからもダウンロードできるみたいですね。
ただコンソールからダウンロードできると楽なので、実装されることを願うばかりです🙏
Discussion