【发布时间】: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 --recursive 或sync 命令输出文件名?
【问题讨论】:
-
你是对的,即使是“aws s3 sync”也会阻塞这些文件名。要进行递归下载而无需调用和重命名每个文件,您必须使用 AWS API。在 Windows、PowerShell 或(我个人最喜欢的)Python+BOTO 上将是门票......或者使用安装了 *nix 操作系统和 awscli 的虚拟机或 docker 容器
标签: amazon-web-services amazon-s3