wake-up-neo.com

Kopieren Sie mehrere Dateien aus dem S3-Bucket

Ich habe Probleme beim Herunterladen mehrerer Dateien von AWS S3-Buckets auf meinen lokalen Computer. 

Ich habe alle Dateinamen, die ich herunterladen möchte, und ich möchte keine anderen. Wie kann ich das machen ? Gibt es irgendeine Art von Schleife in aws-cli, die ich etwas wiederholen kann?

Es gibt einige Hundert Dateien, die ich herunterladen muss, so dass es nicht möglich ist, einen einzigen Befehl zu verwenden, der alle Dateinamen als Argumente verwendet. 

7
DQI

Es gibt ein Bash-Skript, das alle Dateinamen aus einer Datei filename.txt lesen kann. 

#!/bin/bash  
set -e  
while read line  
do  
  aws s3 cp s3://bucket-name/$line dest-path/  
done <filename.txt
9
Rajan

Man kann auch die Option --recursive verwenden, wie im Befehl documentation for cp beschrieben. Es werden alle Objekte unter einem angegebenen Präfix rekursiv kopiert. Z.B.:

aws s3 cp s3://folder1/folder2/folder3 . --recursive

greift alle Dateien unter Ordner1/Ordner2/Ordner3 und kopiert sie in das lokale Verzeichnis.

8
siphiuel

Möglicherweise möchten Sie "sync" anstelle von "cp" verwenden. Im Folgenden werden nur Dateien mit der Erweiterung ".txt" in Ihrem lokalen Ordner heruntergeladen/synchronisiert:

aws s3 sync --exclude="*" --include="*.txt" s3://mybucket/mysubbucket .
7
f.cipriani

Mit doc können Sie auch include- und exclude-Filter mit s3 cp verwenden. So kannst du so etwas machen:

aws s3 cp s3://bucket/folder/ . --recursive --exclude="*" --include="2017-12-20*"

Stellen Sie sicher, dass Sie die Reihenfolge der exclude- und include-Filter angeben, da dies die gesamte Bedeutung ändern kann.

3
geekgunda