我需要同步两个AWS S3存储桶,但我只需要同步列表中的文件。 这是场景:
BucketA:
File1.jpg Deleted
File2.jpg Modified
File3.jpg Deleted
File4.jpg Modified
File5.jpg Modified
File6.jpg New
BucketB:
File1.jpg
File2.jpg
File3.jpg
File4.jpg
File5.jpg
我正在寻找这样的命令:
aws s3 sync s3://BucketA s3://BucketB --delete --exclude "*" --include "File1.jpg;File2.jpg;File4.jpg"
结果BucketB必须是这样的:
File1.jpg deleted
File2.jpg Modified
File3.jpg No changed
File4.jpg Modified
File5.jpg No changed
有什么想法吗?
答案 0 :(得分:5)
看起来这是可以实现的,除了删除部分。
此命令仅sync
指定文件:
aws s3 sync s3://bucketA s3://bucketB --exclude "*" --include "File1.jpg" --include "File2.jpg" --include "File4.jpg"
但是,--delete
参数似乎只查看BucketA
参数中包含的--include
中的文件,导致所有其他文件无形'因此从BucketB中删除。
此命令:
aws s3 sync s3://bucketA s3://bucketB --delete --exclude "*" --include "File1.jpg" --include "File2.jpg" --include "File4.jpg"
实际上会删除除File2.jpg
和File4.jpg
之外的所有文件。因此,看起来您不能以预期的方式进行选择性删除。
这是一个测试以上所有内容的脚本:
aws s3 cp foo s3://bucketa/File1.jpg
aws s3 cp foo s3://bucketa/File2.jpg
aws s3 cp foo s3://bucketa/File3.jpg
aws s3 cp foo s3://bucketa/File4.jpg
aws s3 cp foo s3://bucketa/File5.jpg
aws s3 sync s3://bucketa s3://bucketb
aws s3 rm s3://bucketa/File1.jpg
aws s3 rm s3://bucketa/File3.jpg
aws s3 cp foo s3://bucketa/File6.jpg
aws s3 cp bar s3://bucketa/File2.jpg
aws s3 cp bar s3://bucketa/File4.jpg
aws s3 cp bar s3://bucketa/File5.jpg
aws s3 ls s3://bucketa
2015-07-23 08:50:44 49 File2.jpg
2015-07-23 08:50:49 49 File4.jpg
2015-07-23 08:50:53 49 File5.jpg
2015-07-23 08:50:20 24 File6.jpg
aws s3 ls s3://bucketb
2015-07-23 08:49:35 24 File1.jpg
2015-07-23 08:49:35 24 File2.jpg
2015-07-23 08:49:36 24 File3.jpg
2015-07-23 08:49:36 24 File4.jpg
2015-07-23 08:49:36 24 File5.jpg
aws s3 sync s3://bucketa s3://bucketb --exclude "*" --include "File1.jpg" --include "File2.jpg" --include "File4.jpg"
答案 1 :(得分:0)
没有办法同步特定文件,但是有些麻烦的解决方法。
正如@John Rotenstein所述,您可以使用--exclude =“ *” --indclude =“ FILEPATH”
您可以使用“ cp”命令代替“ sync”,然后将文件路径附加到目标目录的路径中
因此,对于至少几个文件,您可以使用这些解决方法,但是如果像我这样,有几百个文件,那就没有办法。
如果要推送此消息,我已经在github上打开了一张票: https://github.com/aws/aws-cli/issues/5167