2017-03-12 1 views
0

Ich versuche s4cmd zu verwenden, um Dateien aus einem AWS S3-Bucket mithilfe von Platzhaltern zu kopieren, die angeblich unterstützt werden.Dateinamen-Wildcards mit s4cmd beim Kopieren oder Synchronisieren von Amazon S3 nicht möglich

Zum Beispiel wollte ich alle AWS S3-Log-Dateien, beginnend mit 2017-03-12 zu meinem lokalen aktuellen Verzeichnis synchronisieren:

s4cmd sync s3://myapp-logs/prod/2017-03-12-19* . 

, die in führten alle Dateien kopiert werden und die Wildcard offenbar ignoriert:

s3://myapp-logs/prod/2015-10-08-19-24-42-92BBBE9DA93917D1 => ./prod/2015-10-08-19-24-42-92BBBE9DA93917D1 
s3://myapp-logs/prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 => ./prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 
... 

Ich kann diesen Fehler unabhängig vom Format meiner Platzhalter reproduzieren.

Die einzige Zeit Platzhalter wie erwartet ist, wenn ich den cp Befehl verwenden, z.B .:

s4cmd cp s3://myapp-logs/prod/2017-03-12-19* // Note that cp doesn't support copying to a local directory 

oder

s4cmd cp s3://mybucket/mystuff/N*.jpg s3://mybuckettest/ 
+0

Warum 's4cmd'? Kannst du das nicht auch mit 'aws s3' CLI erreichen? – helloV

Antwort

1

Können Sie nicht aws s3 CLI verwenden?

aws s3 sync s3://myapp-logs . --exclude "*" --include "*prod/2017-03-12-19*" 

sollte funktionieren. Wenn es nicht use-of-exclude-and-include-filters angezeigt wird und den Befehl ändern.

+0

Der Grund, warum ich s4cmd (und s3cmd) über den aws s3 cli verwende, ist, weil s4cmd einige zusätzliche Funktionen bietet, wie eine verbesserte Synchronisierung (über s4cmd dsync) und ich versuche, weniger Werkzeuge zu verwenden. * Aber *, du hast mich daran erinnert, dass 'aws s3' Wildcard-ähnliche Funktionalität über Filter implementiert, also danke! Übrigens sollte 'aws s3 s3: // myapp-logs synchronisieren. --exclude "*" --include "prod/2017-03-12-19 *" 'ist äquivalent zu' aws s3 sync s3: // myapp-logs/prod. --exclude "*" --include "2017-03-12-19 *" '? – Howiecamp