从AWS S3存储桶并行下载文件

时间:2020-10-04 19:54:45

标签: amazon-web-services amazon-s3

我想从S3存储桶中下载数百万个文件,这将花费一个多星期的时间来逐个下载-使用外壳脚本以任何方式/任何命令并行下载这些文件?

谢谢

1 个答案:

答案 0 :(得分:2)

AWS CLI

您当然可以并行发出GetObject个请求。实际上,AWS Command-Line Interface (CLI)在传输文件时确实做到了这一点,因此可以利用可用带宽。 aws s3 sync命令将并行传输内容。

请参阅:AWS CLI S3 Configuration

如果存储桶中包含大量对象,则列出存储桶中的内容可能需要很长时间。因此,您可能想通过前缀(文件夹)sync来存储分区,而不是立即尝试所有操作。

AWS DataSync

您可能想使用AWS DataSync

AWS DataSync是一项在线数据传输服务,可简化,自动化和加速通过Internet或AWS Direct Connect向AWS存储服务与从AWS存储服务之间复制大量数据...通过网络将活动数据集快速移动到Amazon S3, Amazon EFS或适用于Windows文件服务器的Amazon FSx。 DataSync包括自动加密和数据完整性验证,可帮助确保您的数据安全,完整且可立即使用。

DataSync使用的协议可充分利用可用带宽,并将管理内容的并行下载。需支付$0.0125 per GB的费用。

AWS Snowball

另一种选择是使用AWS Snowcone(8TB)或AWS Snowball(50TB或80TB),它们是可以预加载来自S3的内容并将其运送到您的位置的物理设备。然后,将其连接到网络并下载数据。 (它也可以反向工作,用于将批量数据上传到Amazon S3。)