AWS get-object不会创建本地目录

时间:2016-08-14 10:28:44

标签: amazon-web-services amazon-s3 cloud command-line-interface amazon

我正在尝试从S3兼容存储中下载文件,我正在运行以下命令:

aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png mailouts/m3/ma2.png

我得到并且错误:

[Errno 2] No such file or directory: u'mailouts/m3/ma2.png'

但是,当我运行以下命令时:

aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png ma2.png

我最终在当前目录中找到了ma2.png文件。因此看起来aws cli无法创建中间目录mailouts/m3

有没有办法强制aws cli制作本地目录?

3 个答案:

答案 0 :(得分:2)

检索单个文件时不是。只要目录中至少有一个文件,AWS S3 CLI中的sync命令就会在目标中创建目录。如果您不想同步整个目录树,可以使用--include--exclude选项缩小同步的文件范围(甚至缩小到ma2.png)。

答案 1 :(得分:0)

S3存储桶没有目录/文件夹。当你有类似的东西时:

mailouts /立方米/ ma2.png

这只是S3存储桶中的文件名。如果要在./mailouts/m3中保存ma2.png,则必须解析对象名称并自行创建中间文件夹/目录。

答案 2 :(得分:0)

最好的方法是使用aws s3 cp命令,它将创建所需的文件夹。