我正在尝试将数百万条记录从s3存储桶下载到NAS。因为文件名没有特定的模式,所以我可以完全依靠修改日期来并行执行多个CLI,以加快下载速度。我找不到根据修改日期下载文件的任何帮助。任何输入将不胜感激!
有人提到使用s3api,但不确定如何通过cp或sync命令使用s3api下载文件。
当前命令:
aws --endpoint-url http://example.com s3 cp s3:/objects/EOB/ \\images\OOSS\EOB --exclude "*" --include "Jun" --recursive
我认为这是错误的,因为此处包含的意思是在文件名中包含“ Jun”,而不是作为修改日期。
答案 0 :(得分:3)
AWS CLI将并行复制文件 。
只需使用aws s3 sync
,它将为您完成所有工作。 (我不确定您为什么要提供--endpoint-url
)
最坏的情况是,如果出现问题,请再次运行aws s3 sync
命令。
sync
命令可能需要一段时间才能收集对象列表,但让它运行。
如果您发现由于文件太多而导致网络开销很大,那么您可以考虑:
aws s3 sync
将文件复制到实例通过这种方式,您可以最大程度地减少传入/传出AWS的闲聊和带宽。
答案 1 :(得分:2)
我假设您要同步任意日期范围,而不仅仅是维护整个存储桶的本地同步副本(您可以使用aws s3 sync
进行此操作)。
您可能必须从Amazon S3 Inventory驱动它。使用清单列表,尤其是对象上最近修改的时间戳,可以构建需要处理的对象列表。然后以某种方式对其进行分区,并将子列表发送到某个分布式/并行过程中以获取对象。