気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

AWSのS3基本コマンド

基本コマンド

良く使う基本のコマンドを表にして見ました。

操作 コマンド 備考
バケット参照 aws s3 ls
バケット内参照 aws s3 ls s3://バケット
バケット作成 aws s3 mb s3://バケット
バケット削除 aws s3 rb s3://バケット バケット内が空でないと消せません
オブジェクトコピー aws s3 cp オブジェクト名 s3://バケット ローカル→S3、S3→ローカル、S3→S3でのコピー可
オブジェクト削除 aws s3 rm s3://バケット名/オブジェクト名 --recursive オプションでディレクトリを再帰的に削除
移動 aws s3 mv s3://バケットA/オブジェクトA s3://バケットB/(オブジェクトB) ローカル→S3、S3→ローカル、S3→S3での移動可
同期 aws s3 sync ディレクトリ s3://バケット名/ディレクト ローカルのディレクトリを同期

正規表現で複数ファイルをコピーする

aws s3 cp *.txt s3://[バケット名]/

上記のように指定したくなるが、エラーになる。aws s3ではファイル指定に「*」が使えないです。

上記を実現したい場合は、excludeとincludeを用いて以下のように指定します。

aws s3 cp test s3://[バケット名]/ --recursive --exclude "*" --include "*.txt"

testディレクトリ以下の拡張子がtxtのファイルのみをコピーするコマンドになります。

excludeを省略したくなりますが、省略すると全ファイルがコピー対象になるのでご注意を。
excludeのみの指定は可能です。

一括削除の際は確認コマンドを使う

--dryrun オプションを付けるとどのように削除されるか確認できる
$ aws s3 rm s3://hogebk --recursive --dryrun
(dryrun) delete: s3://hogebk/hoge/test1.txt
(dryrun) delete: s3://hogebk/hoge/test2.txt