簡體   English   中英

aws cli s3 同步,排除不工作

[英]aws cli s3 sync, exclude not working

我正在嘗試使用排除選項將數據從 ec2 同步到 s3 存儲桶

root@ir:ls /data/
f1 f2 f3 
root@ir:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1/*"
root@ir:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1/"
root@ir:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1*"
root@ir:aws s3 sync /data/ s3://data/ --profile s3to --exclude "f1/*"

root@ir:aws --version
aws-cli/1.9.15 Python/2.7.6 Linux/3.13.0-48-generic botocore/1.3.15

但是以上選項都不起作用,f1 繼續同步到 S3 存儲桶。

你能試一下嗎

aws s3 sync /data/ s3://data/ --profile s3to --exclude "*f1/*"

這有效:

aws s3 sync /home/ec2-user/folder s3://my-bucket --exclude "f1/*"

例:

$ ls -l
total 12
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr 23 00:42 f1
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr 23 00:42 f2
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr 23 00:42 f3

$ aws s3 sync /home/ec2-user/folder s3://my-bucket --exclude "f1/*"
upload: f2/foo to s3://my-bucket/f2/foo
upload: f3/foo to s3://my-bucket/f3/foo           

如果文件已經存在,您可能需要--delete

沒有一個答案明確說明為什么--exclude參數似乎不起作用。

為什么

--exclude使用同步目錄的相對路徑。

例如,以下失敗,因為sync命令正在同步/data/目錄,並且--exclude參數是絕對路徑。

aws s3 sync /data/ s3://data/ --exclude "/data/f1/*"

解決方案是使用從同步文件夾到使用--exclude參數排除的文件夾的相對路徑:

aws s3 sync /data/ s3://data/ --exclude "f1/*"

注意差異

   Fails: --exclude "/data/f1/*"
Succeeds: --exclude "f1/*"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM