アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【Amazon/AWS
【Amazon S3】awsコマンドを使用してs3のデータを操作する
POSTED BY
2023-05-26

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-s3-commands.html
↑にほとんど載っているが、同期のところは必須級のオプションが載ってないのでまとめてメモ。

まず、事前にAWSコマンドを使えるようにしておく=アクセスキー等の初期設定を行っておく。
こちらの記事の「Amazon CLI(awsコマンド)初期設定」の項を参照してセットアップしておく。

バケットの一覧表示

aws s3 ls

フォルダの一覧表示

aws s3 ls s3://backet-name/folder-name

バケットの作成

aws s3 mb s3://bucket-name

バケットの削除

aws s3 rb s3://bucket-name

ファイルの削除

aws s3 rm s3://bucket-name/folder-name/file-name --recursive

フォルダの削除

aws s3 rm s3://bucket-name/folder-name --recursive

ファイルのアップロード

aws s3 cp file-name s3://bucket-name/folder-name

ファイルのダウンロード

aws s3 cp s3://bucket-name/folder-name/file-name .

フォルダのアップロード

aws s3 cp folder-name s3://bucket-name

フォルダのダウンロード

aws s3 cp s3://bucket-name/folder-name .

なお、cpをmvに変えると、転送元のデータが同時に削除される。

バケットのミラーリング(同期)

s3上のbacket-nameバケットの内容を一括でカレントディレクトリのbacket-nameに同期する。
--exact-timestampsオプションは「ファイルサイズが同じでもタイムスタンプが違えばコピー」
--deleteオプションは「同期元に無いファイルは同期先から削除」※自己責任注意

aws s3 sync --exact-timestamps --delete s3://backet-name backet-name

フォルダの場合

aws s3 sync --exact-timestamps --delete s3://backet-name/folder-name backet-name/folder-name

なお、awsコマンド全般で「--quiet」オプションをつけると、正常時コンソール出力させなくできる。

aws s3 sync --exact-timestamps --delete --quiet s3://backet-name backet-name
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】