S3をCLIで操作する方法まとめ

前回はWebコンソール上からS3の操作をしてみました(前回の記事

S3のWebコンソールは便利ですがファイルの移動などたくさんの操作をしたい場合はかなりめんどうです
AWS CLI(Command Line Interface)を使えばたくさんの操作をまとめて実行することなども簡単にできます

AWS CLIの初期設定についてはこちら →(リンク

バケット操作

コマンド説明
aws s3 lsバケットの一覧表示
aws s3 mb s3://bucket-nameバケットの作成
aws s3 rb s3://bucket-nameバケットの削除(空バケットのみ)
aws s3 rb s3://bucket-name –forceバケットの強制削除

オブジェクト操作

コマンド説明
aws s3 ls s3://bucket-name/path/バケット内のオブジェクトを表示
aws s3 ls s3://bucket-name/path/ –recursive バケット内のオブジェクトをサブディレクトリ内も含めて表示
aws s3 cp s3://bucket-name/object s3://bucket-name/object_copyオブジェクトをコピー
aws s3 cp s3://bucket-name/from_path/ s3://bucket-name/to_path/ –recursive フォルダ内のオブジェクトをまとめてコピー
aws s3 mv s3://bucket-name/object s3://bucket-name/object2 オブジェクトを移動
aws s3 mv s3://bucket-name/from_path/ s3://bucket-name/to_path/ –recursiveフォルダ内のオブジェクトをまとめて移動
aws s3 rm s3://bucket-name/objectオブジェクトを削除
aws s3 rm s3://bucket-name/path –recursive フォルダ内のオブジェクトをまとめて削除
aws s3 sync s3://bucket-name/from_path/ s3://bucket-name/to_path/ フォルダ内のオブジェクトを同期 (追加・更新のみ)
aws s3 sync s3://bucket-name/from_path/ s3://bucket-name/to_path/ –deleteフォルダ内のオブジェクトを同期 (削除あり)
ここではS3同士のオブジェクト操作例を挙げましたが、ローカルのファイルに変更することでS3へのアップロードやダウンロードを行うこともできます

最後に

Linuxのcpコマンドと同じような感じで使えてうれしいですね。
フォルダ毎操作する場合は「–recursive」をつけるのがよく使うので
スペルをしっかり覚えておきたいところです。
syncはコピーのように使うことも可能で「–delete」オプションつけるときは
意図せず削除される可能性もありそうなので気を付ける!