AWSのコンソール画面でS3のファイルを見たりアップロードしたり操作できますが、ファイルが大量にあったりするとスクロールして動的に読み込まれるので時間がかかるしイラッとしますよね…。
というわけで、AWS CLIを導入してコマンドラインで操作できるようにします。(もちろんS3以外のことも色々できます。)
#インストール#
pip(Pythonのパッケージ管理システムらしい)でインストールします。(AWS コマンドラインインターフェイス)
pip install awscli
pipが入っていない場合は、まずpipをインストールします。
get-pip.pyをダウンロードして以下を実行します。(pip installation)
python get-pip.py
pythonが入っていない場合はpythonをインストールします。
pipはPython2.7.9以降、Python3.4以降からデフォルトで付属してるそうなので、そのあたりのPythonを入れればpipも付いてくるはず。
ちなみにPythonをソースコンパイルでインストールする場合はopenssl-develが入ってないとダメみたいなので、その場合はopenssl-develも入れておきます。
#設定#
configureコマンドで自分のAccess Key IDとSecret Access Keyを設定します。
$ aws configure
Access Key ID: (自分のを入力)
Secret Access Key: (自分のを入力)
region: ap-northeast-1(適切なものを入力)
Access Key IDとSecret Access KeyはIAM(Identity and Access Management)のユーザー管理のアクセス認証情報で作成できます。
ここで設定したユーザーでAWSにアクセスできるようになります。
#S3操作#
aws s3 cp
でアップロードしたりaws s3 rm
で削除したりできます。
詳しくはリファレンス(s3 available commands)を見てください。
--dryrun
を付けると何が実行されるかが前もってわかります。
以下、いくつか例をあげます。
##bucketを一覧表示##
aws s3 ls
##jpgファイルをまとめてアップロード##
cache-control等のメタデータも付けられます。
aws s3 cp img_dir s3://my-bucket-name/img_dir/ --recursive --include "*.jpg" --cache-control "max-age=6000"
##まとめて削除##
aws s3 rm s3://my-bucket-name/img_dir/ --recursive
##ローカルディレクトリをS3のディレクトリに同期##
aws s3 sync img_dir/ s3://my-bucket-name/img_dir/ --delete
いやー便利ですね。