【问题标题】:How to download all files from s3 bucket, when objects have Windows incompatible filenames当对象的文件名与 Windows 不兼容时,如何从 s3 存储桶下载所有文件
【发布时间】:2018-03-20 02:59:57
【问题描述】:

尝试使用以下方法将我的 s3 存储桶中的所有内容复制到本地硬盘:

aws s3 cp s3://mybucket . --recursive

但存储桶的内容是一个日志流,对象名称如下:

logs/
├──2018-03-20/
│   ├──01:00+00/
│   │   └──01:10:06.521.csv.gz
│   ├──02:00+00/
│   │   └──02:22:09.306.csv.gz
etc

当我尝试复制时,除了名称为 logs/2018-03-20 的空文件夹外,我什么也得不到。我猜这是因为 Windows 不允许在文件夹或文件名中使用冒号,而且 --recursive 命令不会自动更正(当我从浏览器下载时,冒号被替换为下划线)。

我无法控制日志流输出。

对于如何下载所有数据(除了手动逐个文件)有任何建议吗?有什么方法可以指定如何从cp --recursivesync 命令输出文件名?

【问题讨论】:

  • 你是对的,即使是“aws s3 sync”也会阻塞这些文件名。要进行递归下载而无需调用和重命名每个文件,您必须使用 AWS API。在 Windows、PowerShell 或(我个人最喜欢的)Python+BOTO 上将是门票......或者使用安装了 *nix 操作系统和 awscli 的虚拟机或 docker 容器

标签: amazon-web-services amazon-s3


【解决方案1】:

我能够使用“test:test”文件名设置用例,并在 Windows 10 虚拟机上使用 Cyber​​Duck 下载它们。 我只是拖动了包含该文件的文件夹,并在下载时重命名了它们。

你可以在这里下载cyberduck

https://cyberduck.io/

干杯!

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2013-10-15
    相关资源
    最近更新 更多