AWS CLI工具 - 无法从S3递归下载

时间:2015-11-09 22:42:59

标签: amazon-web-services amazon-s3

我在S3上有以下结构:

bucket:
   - dir_test
       - dir_a
           - dir
               - file
           - file_2
           - file_2
           - file_n
       - dir_b
           - dir
                - file
           - file_2
           - file_2
           - file_n

我想从shell脚本中将dir_test的整个内容下载到我的工作目录:

source_path="s3://bucket/dir_test/"
target_path="."
aws s3 cp "$source_path" "$target_path" --recursive

一切都下载得很好,但是报告Errno 21:

download failed: s3://bucket/dir_test/dir_a/dir/ to dir_a/dir/ [Errno 21] Is a directory: u'/my-wd/dir_a/dir/'

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您的复制命令看起来是正确的,但该错误没有意义--S3实际上没有目录,所以它永远不应该尝试下载"一个空目录。目录在本地创建,作为下载文件的副作用(S3文件实际上命名为" foo / bar / baz.txt" CLI工具正在将其转换为" baz.txt&#34 ;在" bar" dir in" foo" dir)。

我想知道你是否有一些奇怪的东西,比如一个名为" dir /"的文件?或者名称空的文件?试试aws s3 ls s3://bucket/dir_test/dir_a/dir/

答案 1 :(得分:0)

您也可以试用mc工具:

mc cp https://s3-us-west-2.amazonaws.com/bucketName/... localdir

命令中的...表示递归操作