~/.awsにconfigとcredentialsができる.
aws configure
で生成できる.
configファイルはプロファイルごとに設定し、CLIをプロファイルごとに実行できる。
```text: config [default] region = ap-northeast-1 output = json
[profile cf] region = auto output = json
```text: credentials
[default]
aws_access_key_id = AKIxxx
aws_secret_access_key = iB/xxx
[cf]
aws_access_key_id = xxx
aws_secret_access_key = xxx
cfの部分がプロファイル名。awsコマンドでは以下のように指定。
aws s3 cp [from] [to] --profile [プロファイル名]
boto3では以下のように指定。
import boto3
aws_session = boto3.Session(profile_name="[プロファイル名]")
s3 = aws_session.client('s3')
/media/image/300で始まるファイルの取得
aws s3 ls s3://s3-url/media/image/300
カレントフォルダのファイルを全てs3://s3-url/media/imageにアップロード
aws s3 cp . s3://s3-url/media/image --recursive
– recursive: フォルダの中の全ファイルの指定
s3-url/media/streamにあるファイルをすべてs3-url/media/movieに移動
aws s3 mv s3://s3-url/media/stream s3://s3-url/media/movie/ --recursive
aws s3 rm s3://bucket/image/venv/ --recursive
aws s3 rm s3://bucket/image/venv/ --recursive --dryrun
ex. jpegファイル以外を削除
aws s3 rm s3://bucket/media/image/ --recursive \
--exclude "*.jpg" --exclude "*.jpeg" --exclude "*.JPG" --exclude "*.JPEG" \
autoとする。aws s3 cp . s3://dir --recursive --endpoint-url https://[cloudflareアカウントID].r2.cloudflarestorage.com --profile [プロファイル名]
例: boto3の場合
import boto3
aws_session = boto3.Session(profile_name="[プロファイル名]")
s3 = aws_session.client('s3', endpoint_url="https://[cloudflareアカウントID].r2.cloudflarestorage.com")