awscliで表題の件を行う。
■ 環境
- awscli 1.10.17
■ get-object-acl
先日のエントリの通り、S3オブジェクトの既存の権限を取得することはできた。
$ aws s3api get-object-acl --bucket withsin --id test.tar.gz
これを変更する方法を確認する。というのも下記のように`–acl public-read`を付け忘れて実行してしまうことが多々ある為である。
$ aws s3 cp ./test.tar.gz s3://withsin/
■ put-object-acl
`s3api`には`put-object-acl`というサブコマンドもあるようだ。これで設定できそうである。
$ aws s3api put-object-acl --acl public-read --bucket withsin --key test.tar.gz
$
$ aws s3api get-object-acl --bucket withsin --key test.tar.gz
{
"Owner": {
"DisplayName": "withsin",
"ID": "XXXXXXXXXXXXXXXXXXXX"
},
"Grants": [
{
"Grantee": {
"Type": "CanonicalUser",
"DisplayName": "withsin",
"ID": "XXXXXXXXXXXXXXXXXXXX"
},
"Permission": "FULL_CONTROL"
},
{
"Grantee": {
"Type": "Group",
"URI": "http://acs.amazonaws.com/groups/global/AllUsers"
},
"Permission": "READ"
}
]
}
$
上記で良さそうである。以前はその場で気がつけば下記のようにアップロードしなおしていたりしたが、これでブラウザから”ManagementConsole“を開いて…というような事をしなくて済みそうだ。
以上。