2017-06-02 1 views
0

Ich habe ein Shell-Skript geschrieben, das awscli verwendet, um Dateien aus einigen Ordnern in s3 zu holen. Die Probleme, die ich habe, ist, dass wenn ich das Skript ausführe, es die Ordner erstellt, aber die Dateien werden nur in einem heruntergeladen. Die erstellten Ordner erhalten denselben Namen wie in S3. Wie kann ich dieses Skript ändern, so dass die Ordner erstellt werden, aber die Dateien in den entsprechenden Ordner heruntergeladen werden.Shell Script, das Dateien aus S3-Ordner herunterlädt und auch Ordner für sie erstellt

#!/bin/bash -e 


DIRNAME='s3download' 
SLASH='/' 
SEVENFOLDERS=("folder1" "folder2" "folder3" "folder4" "folder5" "folder6" "folder7") 
SEVENFOLDERPATH=("s3://blah/folder1/" 
"s3://blah/folder2/" "s3://blah/folder3/" "s3://blah/folder4/" "s3://blah/folder5/" "s3://blah/folder6/" "s3://blah/folder7/") 

mkdir $DIRNAME 
for i in "${SEVENFOLDERS[@]}" 
do 
: 
SUBDIR=$DIRNAME$SLASH$i 
mkdir -p $SUBDIR 
done 

for k in "${SEVENFOLDERPATH[@]}" 
do 
: 
SUBDIR=$DIRNAME$SLASH$k 
aws s3 cp --recursive $k $SUBDIR 
done 
echo $i "Status: 200 OK" 
fi 

Antwort

0

aws s3 sync wird als auf S3-Dateien in der gleichen Struktur herunterladen.

+0

'aws s3 sync ' hat nicht funktioniert. Können Sie bitte mehr im Code ausarbeiten? – kastsabug

+0

Sie müssen sich die Dokumentation ansehen, aber ich sehe mindestens eine Sache falsch mit diesem Befehl: Sie müssen das lokale Verzeichnis * last * setzen, weil das Ziel immer zuletzt ist. Auch "hat nicht funktioniert" ist nicht genug Informationen für jemanden zu helfen. – l0b0

+0

'aws s3 sync .' nimmt den S3-Dump mit seiner intakten Struktur. – kastsabug