我有一个存储桶
bucket_a
,并尝试将此存储桶的内容复制到另一个存储桶 bucket_b
,但将对象从存储桶 folder_a
的文件夹 bucket_a
复制到存储桶 folder_a
需要花费大量时间bucket_b
,因为每个文件夹中有近 9k 个对象,每个大小为 600MB我有 20 个这样的文件夹。
我尝试了存储桶的加速选项并使用了aws cli的
cp
命令,看起来复制内容还需要2-3天。
加速此类传输的一种方法是确保您用于传输的角色允许读取源存储桶并写入目标存储桶。 正确设置角色和存储桶策略后,您可以防止数据在 AWS 服务器外部传输。 这可以实现更快的传输时间并节省您自己的数据使用量。
请参阅:https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/ 和 https://docs.aws.amazon.com/cli/latest/userguide/cli -configure-profiles.html
加快传输速度的另一种方法是调整复制过程中使用的一些设置。 您可以指定块大小、可以同时进行传输的线程数量以及其他设置。 请参阅:https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
您可能需要至少使用 4-10
max_concurrent_requests
(线程数),并根据可用内存和允许的并发请求数将 multipart_chunksize
从默认值增加到某个值。
我发现 aws cli 工具基本上能够消耗您所有的 CPU 和内存,因此您需要小心如何设置它。