基本コマンド
良く使う基本のコマンドを表にして見ました。
操作 | コマンド | 備考 |
---|---|---|
バケット参照 | 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