- AWS CLIインストール
- 初期設定(認証設定)
- バケットを一覧表示
- オブジェクトの一覧表
- オブジェクトの削除
- オブジェクトの移動
- オブジェクトのコピー
- オブジェクトの同期
- バケットの作成
- バケットの削除
AWS CLIインストール
macOS
$ brew install awscli
Windows
> winget add Amazon.AWSCLI
Windows で管理者権限でインストールが行えないなどの場合、以下でインストールファイルを抽出することで対応できる。
> msiexec /a %USERPROFILE%\Downloads\AWSCLIV2.msi /qb TARGETDIR=<path_to_install>\awscli
> path <path_to_install>\awscli\Amazon\AWSCLIV2;%PATH% > aws --version
初期設定(認証設定)
$ aws configure AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: json
~/.aws/credentials
にAccess Key IDとSecret Access Key、~/.aws/config
に region と output format が保存される。
プロファイルを分ける場合は以下で設定追加する(指定無し時は default
プロファイルとなる)。
aws configure --profile myProfile
プロファイルは環境設定で切り替え。
export AWS_PROFILE=myProfile
PowerShell の場合は以下。
$env:AWS_PROFILE = 'myProfile'
バケットを一覧表示
$ aws s3 ls
オブジェクトの一覧表
bucket-name/example/
内のオブジェクトを一覧
$ aws s3 ls s3://bucket-name/example/
サブディレクトリ内全て
$ aws s3 ls s3://bucket-name/example/ --recursive
オブジェクトの削除
$ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt
s3://my-bucket/path
とそのすべての内容を削除。
$ aws s3 rm s3://my-bucket/path --recursive
オブジェクトの移動
s3://bucket-name/example
から全てのオブジェクトを s3://my-bucket/
に移動
$ aws s3 mv s3://bucket-name/example s3://my-bucket/
ローカルファイルをバケットに移動
$ aws s3 mv filename.txt s3://bucket-name
バケット内オブジェクトを現在ディレクトリに移動
$ aws s3 mv s3://bucket-name/filename.txt ./
オブジェクトのコピー
s3://bucket-name/example
から全てのオブジェクトを s3://my-bucket/
にコピー
$ aws s3 cp s3://bucket-name/example s3://my-bucket/
echo 結果を s3://bucket-name/filename.txt
ファイルにストリーム
$ echo "hello world" | aws s3 cp - s3://bucket-name/filename.txt
s3://bucket-name/filename.txt
ファイルをコンソールに出力
$ aws s3 cp s3://bucket-name/filename.txt -
オブジェクトの同期
現在ディレクトリをソースとし、S3 my-bucket/path
に内容を同期する(アップロードする)。
サブディレクトリを含んで処理される。
$ aws s3 sync . s3://my-bucket/path
aws s3 sync . s3://my-bucket/path --delete
のように --delete
オプションを指定すれば、ローカルディレクトリから削除したファイルがS3から削除される。
S3 my-bucket/path
の内容を現在ディレクトリに同期する(ダウンロードする)。
$ aws s3 sync s3://my-bucket/path .
バケット同士の同期
$ aws s3 sync s3://my-bucket/path s3://dest-bucket/path --delete
バケットの作成
$ aws s3 mb s3://bucket-name
バケットの削除
--force
付きでバケットとその内部のオブジェクトを全て削除
$ aws s3 rb s3://bucket-name --force