[英]AWS CLI S3 sync only over selected files?
我需要同步兩個 AWS S3 存儲桶,但我只需要同步列表中的文件。 這是場景:
桶A:
File1.jpg Deleted
File2.jpg Modified
File3.jpg Deleted
File4.jpg Modified
File5.jpg Modified
File6.jpg New
桶B:
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
任何的想法?
看起來這是可以實現的,除了刪除部分。
此命令將僅sync
指定的文件:
aws s3 sync s3://bucketA s3://bucketB --exclude "*" --include "File1.jpg" --include "File2.jpg" --include "File4.jpg"
但是,-- --delete
參數似乎只查看BucketA
參數中包含的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"
無法同步特定文件,但實際上有一些不好的解決方法。
正如@John Rotenstein 提到的,你可以使用 --exclude="*" --indclude="FILEPATH"
您可以使用 'cp' 命令代替 'sync' 並將文件路徑附加到目標目錄的路徑
因此,對於至少幾個文件,您可以使用這些解決方法,但是如果像我這樣有數百個文件,則沒有辦法。
如果你想推這個,我已經在github上開了一張票: https : //github.com/aws/aws-cli/issues/5167
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.