aws-cliでS3ライクストレージを管理するコマンドまとめ

GUI任せだったんですけど、Linuxで動く最後のGUIが起動しなくなったのでコマンドでやることにしました。一通りこんなもんでファイル管理は大丈夫かなと。私がやる手順順に書いておきました。

まず認証する

このようにしてまずは認証を行ってから作業をする

aws configure --profile name

オブジェクトの一覧を見る

S3ライクの場合は endpoint でそのホストを指定します。

aws s3 ls \
  --profile example \
  --endpoint http://example.com \
  s3://example/path/to/

オブジェクトのディレクトリとの同期

aws s3 sync \
  --profile example \
  --endpoint http://example.com \
  --acl public-read \
  --exclude "*" \
  --include "*.png" \
  ./ \
  s3://example/path/to/

この例は追加のみで、削除もするには --delete オプションを付けると良い。ただし削除はパスミスった時に全部消えるので、個人的にはほとんど使わない。

オブジェクトの変更

aws s3 mv \
  --profile example \
  --endpoint http://example.com \
  s3://example/path/to/hoge.png \
  s3://example/path/to/hoge.png

オブジェクトを一般ユーザーに公開する

aws s3api put-object-acl \
  --profile example \
  --endpoint http://example.com \
  --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers \
  --bucket example \
  --key path/to/hoge.png

オブジェクトのアップロード

aws s3 cp \
  --profile example \
  --endpoint http://example.com \
  --acl public-read \
  --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers \
  ./hoge.png \
  s3://example/path/to/

スラッシュを付けないとその名前で保存され、スラッシュを付けるとそのパス以降にオブジェクトが配置される。

オブジェクトの削除

aws s3 rm \
  --profile example \
  --endpoint http://example.com \
  s3://example/path/to/hoge.png

パス以降を消す時には --recursive をけつに付ける

オブジェクトの権限の確認

s3://example/path/to/hoge.png のようなパスにオブジェクトを配置していた場合は下記のようになる。

aws s3api get-object-acl \
  --profile example \
  --endpoint http://example.com \
  --bucket example \
  --key path/to/hoge.png

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA