2015-10-06 71 views
0

我需要递归下载一个文件夹中的文件夹的目录树,但不要下载任何文件(它们很大)。这是我到目前为止:如何下载S3存储桶的目录结构(不含文件)?

s3cmd --dry-run --recursive --no-delete-removed --verbose --rinclude='^[^.]*$' 
    --rexclude='[^.]*$' sync s3://bucket_name/folder/ ~/Downloads/local_folder/ 

它正确地跳过文件,但它不下载文件夹。

这里有一些相关的问题,我发现

+0

正如您在引用的其他问题的答案中所指出的那样,没有要下载的文件夹。 S3中的文件夹很大程度上是一种错觉,这是键名中'/'分隔符的副作用...... s3cmd可能没有简单的方式来下载实际不存在的东西。对ListObjects的REST接口的直接API调用允许您获取“通用前缀” - “文件夹” - 但是s3cmd是否以有用的方式利用这一点是我未知的,fwiw。 –

回答

2

亚马逊S3没有文件夹。最接近的概念是CommonPrefix,它允许列出目录中“文件”内的文件。

你将不得不编写自己的程序(例如在Python中使用boto)来检索这些通用前缀并在本地创建一个目录结构。

顺便说一句,这几天最好是使用AWS Command-Line Interface (CLI)而不是s3cmd因为它可以与工作,而所有 AWS服务不仅仅是亚马逊S3。

相关问题