【问题标题】:AWS get-object doesn't create local directoriesAWS get-object 不创建本地目录
【发布时间】:2016-08-14 10:28:43
【问题描述】:

我正在尝试从 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创建本地目录?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      mailouts/m3/ma2.png

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-10-11
          • 1970-01-01
          • 2019-09-25
          • 2021-11-14
          • 2020-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多