0
我編寫了一個shell腳本,它使用awscli從s3中的幾個文件夾獲取文件。我遇到的問題是,當我運行腳本時,它會創建文件夾,但文件只是下載到一個文件夾中。所創建的文件夾的名稱與S3中的相同。我如何修改此腳本以便創建文件夾,但這些文件會下載到相應的文件夾中。Shell腳本從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
'aws s3 sync'does not work。你能否詳細說明一下代碼。 –
kastsabug
您需要查看文檔,但是我發現該命令至少有一個錯誤:您需要放置本地目錄* last *,因爲目標始終是最後一個。此外,「沒有工作」是沒有足夠的信息供任何人提供幫助。 – l0b0
'aws s3 sync .'正在採取與其結構完整的S3轉儲。 –
kastsabug