【问题标题】:download files from AWS S3 bucket in parallel从 AWS S3 存储桶并行下载文件
【发布时间】:2020-10-05 06:09:33
【问题描述】:

我想从 S3 存储桶下载数百万个文件,这将需要一个多星期的时间才能逐个下载 - 任何方式/任何命令都可以使用 shell 脚本并行下载这些文件?

谢谢,

【问题讨论】:

  • 文件有多大?限制是要传输的数据总量,还是下载许多小文件的开销?

标签: amazon-web-services amazon-s3


【解决方案1】:

AWS CLI

您当然可以并行发出GetObject 请求。事实上,AWS Command-Line Interface (CLI) 在传输文件时正是这样做的,因此它可以利用可用带宽。 aws s3 sync 命令将并行传输内容。

见:AWS CLI S3 Configuration

如果您的存储桶有大量对象,则可能需要很长时间才能列出存储桶的内容。因此,您可能希望通过前缀(文件夹)sync 存储桶,而不是一次尝试所有操作。

AWS 数据同步

您可能想改用AWS DataSync:

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

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

AWS 雪球

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2017-10-19
    • 2019-02-16
    • 2019-11-25
    • 2021-05-23
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多