2017-06-02 4 views
0

awscliを使用してs3のいくつかのフォルダーからファイルを取得するシェルスクリプトを作成しました。私が抱えている問題は、スクリプトを実行すると、フォルダが作成されますが、ファイルはただちにダウンロードされるということです。作成されたフォルダの名前はS3と同じです。このスクリプトを修正してフォルダを作成する方法はありますが、ファイルは対応するフォルダにダウンロードされます。シェルS3フォルダーからファイルをダウンロードしてそれらのフォルダーを作成するスクリプト

#!/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 

答えて

0

aws s3 syncは、S3と同じ構造でファイルをダウンロードします。

+0

aws s3 sync 'は動作しませんでした。コードで詳細を教えてください。 – kastsabug

+0

ドキュメントを見る必要がありますが、少なくともそのコマンドには1つの問題があります。ターゲットが常に最後であるため、ローカルディレクトリ* last *を置く必要があります。また、「うまくいきませんでした」とは誰でも助けてくれる情報ではありません。 – l0b0

+0

'aws s3 sync .'はS3ダンプを構造をそのまま残して取ります。 – kastsabug

関連する問題