2017-07-07 5 views
0

Le cas d'utilisation est que je veux exclure certaines données d'aller jusqu'à S3. Les fichiers peuvent se trouver n'importe où dans la hiérarchie des fichiers, mais s'ils se trouvent n'importe où sous un répertoire nommé foobar, je ne veux pas qu'ils soient copiés.Comment puis-je convaincre la synchronisation AWS CLI d'exclure tout fichier correspondant à un modèle de répertoire?

Par exemple:

/my-data/20150806-1600/foobar/blah.csv # Exclude 
/my-data/20150806-1600/dingbat/blah.csv # Include 
/my-data/clients/foobar/README.txt  # Exclude 

$ /usr/local/bin/aws --version 
aws-cli/1.11.117 Python/2.7.6 Linux/3.13.0-92-generic botocore/1.5.80 

... Hélas

/usr/local/bin/aws s3 sync /my-data/ s3://my-bucket/my-data/ --exclude '*/foobar/*' --exclude '*/foobaz/*' --delete 

Les chargements de fichiers encore. J'ai essayé de changer le motif d'exclusion à foobar/* et *foobar* mais dans tous les cas, les fichiers correspondant à un répertoire parent avec foobar dans le chemin sont toujours téléchargés.

+0

'--exclude '* foobar/*' peut-être? – bishop

Répondre

0

Pour moi, il semblait seulement fonctionner en excluant *foobar* ou *foorbar/*. Il serait pas travail en excluant */foobar/*:

$ ls -lR stack 
total 8 
drwxr-xr-x 3 user wheel 102 8 Jul 23:25 foobar 
-rw-r--r-- 1 user wheel 5 8 Jul 23:25 level1 

stack/foobar: 
total 8 
-rw-r--r-- 1 user wheel 5 8 Jul 23:25 level2 

$ aws s3 sync stack/ s3://my-bucket --exclude '*foobar*' 
upload: stack/level1 to s3://my-bucket/level1