2016-04-22 9 views
2

Ich versuche, mit Daten von EC2 s3 Eimer zu synchronisieren exclude Optionaws cli s3 sync, exclude funktioniert nicht

[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 

Aber kein von oben genannten Optionen arbeiten und f1 weiter auf den S3-Bucket zu synchronisieren.

+0

Ich erinnere mich, ich habe es irgendwo gelesen, dass Sie beide - include und --exclude verwenden müssen. Kannst du versuchen --include * --exclude "/ data/f1", etc. – mootmoot

+0

@mootmoot, es ist andersherum ... Standardmäßig sind alle Dateien enthalten. Dies bedeutet, dass die Angabe eines '--include'-Filters nicht ändert, welche Dateien übertragen werden. Es werden nur Dateien neu eingeschlossen, die von einem '--exclude'-Filter ausgeschlossen wurden. Wenn Sie nur Dateien mit einer bestimmten Erweiterung hochladen möchten, müssen Sie zunächst alle Dateien ausschließen und dann die Dateien mit der jeweiligen Erweiterung erneut einschließen. –

Antwort

1

können Sie versuchen,

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

Dies funktioniert:

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

Beispiel:

$ 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

Ich habe getestet, mit 3 Ordner wie Sie in Ihrem Kommentar erwähnt, und es funktioniert Datei. aber es funktioniert nicht in meiner Produktionsumgebung. Im Production-Ordner ist f2 bereits synchronisiert, jetzt möchte ich es ausschließen, aber es läuft immer noch auf s3. –

+0

Zeigt es (in der Ausgabe), dass es immer noch f2 synchronisiert, oder meinst du, dass es f2 an dem entfernten Ort nicht löscht? –

0

Sie können --delete müssen, wenn die Datei bereits vorhanden ist.

Verwandte Themen