事前準備
送信元のバケットポリシーで、送信先からのアクセスを許可しておく。
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal":{ "AWS": "xxxxxxxxx"},
"Action":"s3:*",
"Resource": [
"arn:aws:s3:::test-sync-src/*",
"arn:aws:s3:::test-sync-src"
]
}
]
}
- 送信元にファイルをアップロード、送信先は空であることを確認
$ aws s3 ls s3://test-sync-src/
2021-08-04 01:45:13 133384 apple.png
$ aws s3 ls s3://test-sync-dst/
同期する
- 2つのバケットをsyncする
$ aws s3 sync s3://test-sync-src s3://test-sync-dst
copy: s3://test-sync-src/apple.png to s3://test-sync-dst/apple.png
削除を同期する
- 両方のバケットにapple.png, mikan.pngがある状態にしておく
- そこから、送信元だけmikan.pngを削除
- 削除を同期するには
--delete
をつける
$ aws s3 sync --delete s3://test-sync-src s3://test-sync-dst
delete: s3://test-sync-dst/mikan.png