AWS CLI S3とローカルフォルダとのファイル同期
ローカルでAWS CLIのインストール
S3への編集権限を持ったIAM USERの作成
- AmazonS3FullAccessポリシーのアタッチ
- ※インラインポリシーの作成
インラインポリシー内容 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1446117060000", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::*" ] } ] }
ローカルAWS CLIの設定
aws configure
例 AWS Access Key ID [None]: (上IAMユーザーのアクセスキー) AWS Secret Access Key [None]:(上IAMユーザーのシークレットキー) Default region name [None]: ap-northeast-1(デフォルトで接続させたいリージョン) Default output format [None]: json(AWS CLI上で出力されるデータの形式)
フォルダをS3へアップロード
aws s3 sync [ローカルファイルのディレクトリ] s3://[バケット名]/[ディレクトリ名
クラウドフロントのキャッシュ設定がうまくいかない場合、アップロード時にキャッシュ時間を指定するオプションをつける
--cache-control "max-age=2"
--aclオプションで公開設定も可能
aws s3 sync test s3://hoge/videos --acl public-read
S3内のファイル全てを削除
aws s3 rm s3://hoge/ --exclude '*' --include '*' --recursive --dryrun
複数アカウントを使用する場合
aws configure --profile profile名 でプロファイルを作成
aws cli コマンド末尾に --profile profile名 でプロファイルを指定
プロファイル情報は以下で確認
cat ~/.aws/credentials
異なるawsアカウント間でアクセスする場合
バケットのアクセスコントロールリスト (ACL)に外部アカウントを追加する
//参考URL
https://qiita.com/fkana/items/6b241fd3432570c2cd33 https://qiita.com/notakaos/items/4a7774ee6e1d11bb55d2 https://okisanjp.hatenablog.jp/entry/2016/07/04/130042 https://qiita.com/sakai00kou/items/b3284b93145967d25c86#%E8%A8%AD%E5%AE%9A%E6%83%85%E5%A0%B1%E3%81%AE%E5%A0%B4%E6%89%80