2016-04-22 5 views
2

Я пытаюсь синхронизировать данные из ec2 в s3 ведра с исключающими вариантамиAWS кли s3 синхронизация, исключающая не работает

[email protected]:ls /data/ 
f1 f2 f3 
[email protected]:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1/*" 
[email protected]:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1/" 
[email protected]:aws s3 sync /data/ s3://data/ --profile s3to --exclude "/data/f1*" 
[email protected]:aws s3 sync /data/ s3://data/ --profile s3to --exclude "f1/*" 

[email protected]:aws --version 
aws-cli/1.9.15 Python/2.7.6 Linux/3.13.0-48-generic botocore/1.3.15 

Но ни один из этих вариантов не работают и f1 продолжает синхронизироваться с ведром S3.

+0

Напомню, что я где-то читал, что вы должны использовать оба варианта --include и -exclude. Можете ли вы попробовать - включить * --exclude "/ data/f1" и т. Д. – mootmoot

+0

@mootmoot, его наоборот ... по умолчанию все файлы включены. Это означает, что предоставление только фильтра '--include' не изменит, какие файлы будут переданы. он будет только повторно включать файлы, которые были исключены из фильтра '--exclude'. Если вы хотите только загружать файлы с определенным расширением, вам нужно сначала исключить все файлы, а затем повторно включить файлы с определенным расширением. –

ответ

1

вы можете попробовать

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

Это работает:

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   
+0

Я протестировал, с 3 папками, как вы упомянули в своем комментарии, и это рабочий файл. но он не работает над моей производственной средой. В производственной папке f2 уже синхронизируется, теперь я хочу ее исключить, но она все еще синхронизируется на s3. –

+0

Он показывает (на выходе), что он все еще синхронизирует f2, или вы имеете в виду, что он не удаляет f2 в удаленном месте? –

0

Может потребоваться --delete, если файл уже существует.

Смежные вопросы