2017-06-02 134 views
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 

回答

0

aws s3 sync将下载与S3上相同结构的文件。

+0

'aws s3 sync 'does not work。你能否详细说明一下代码。 – kastsabug

+0

您需要查看文档,但是我发现该命令至少有一个错误:您需要放置本地目录* last *,因为目标始终是最后一个。此外,“没有工作”是没有足够的信息供任何人提供帮助。 – l0b0

+0

'aws s3 sync .'正在采取与其结构完整的S3转储。 – kastsabug

相关问题