【问题标题】:AWS S3 download only txt files without folders?AWS S3只下载没有文件夹的txt文件?
【发布时间】:2018-06-05 19:46:04
【问题描述】:

我已配置 AWS CLI,一切都已连接并正常运行。

请指导我如何仅下载文件,例如 .txt 文件或 .anyformat 文件但没有文件夹?

我的命令给我带来了所有带有文件夹的存储桶:

aws s3 cp s3://my-bucket ~/My_Files/ --recursive

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    单独使用AWS Command-Line Interface (CLI) aws s3 cp 命令是不可能的。

    您可以使用 AWS CLI 将文件下载到目录中,然后编写一个 shell 命令来移动它们,或者您可以编写一个小脚本(例如在 Python 中)下载文件并将它们保存在您希望的位置(作为替代使用 AWS CLI)。

    如果您使用 AWS CLI,它将始终重新创建文件夹结构。

    【讨论】:

      【解决方案2】:

      编辑:嘿,我在我的 S3 存储桶上检查了这个命令,它似乎工作。让我试着解释一下,这可能会对你有所帮助:

      aws s3 cp s3://bucketname/ /home/ --recursive --exclude "*" --include "*.txt"

      首先我们将存储桶名称放在 / 之后,我们指定系统上应将其复制到的位置。如果你在 Windows 上,你可以使用 C:/Users/... 或者在 Ubuntu 中只使用 /home/,其余的命令很简单。递归,因此 shell 不会在 1 个文件上停止,并且使用 exclude 和 include 意味着所有文件都被忽略,除非它们是 .txt 需要注意的一件事是您可能无权复制到目录或者您位于根目录中,请检查您是否指向一个有效目录,其中存储桶中的文件将被复制或只是导航到它并使用点在指向 s3 存储桶名称之后。

      https://docs.aws.amazon.com/cli/latest/reference/s3/index.html

      【讨论】:

      • 你能再试一次吗,我没有把*放在“排除”里面
      • 有没有它都做了。在 Ubuntu 17.1 上也是如此。它带来了文件夹 + 子文件夹 + 文本文件。
      • 这是我在 S3 MyBucket 中的结构:文件夹 1:子文件夹 1:子文件夹 1:txt 文件。我只是将你的命令复制粘贴到我的终端,我完全理解你的解决方案,我不明白为什么它没有做我想做的事情。
      • company@company:~$ aws s3 cp s3://mybucket/ /home/company/My_Files/AWS/ --recursive --exclude "*" --include "*.txt" company@company:~$
      • 也许这是解决方案的关键,文件是文本,但它们没有 .txt 结尾。但只是名字。这是一个示例:2018-05-06-14-10-34-499
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多