【问题标题】:python aws s3 file distributingpython aws s3文件分发
【发布时间】:2017-12-21 23:16:42
【问题描述】:

我正在寻找this 教程。我想知道无论如何要在不同的对象上分发大量文件。例如,假设我有大小为 60 GB 的视频文件,并且我有大小为 4 x 15 GB 的 S3 存储桶。现在,我如何拆分我的文件以将其保存在这些大小的存储空间中。如果你能分享任何教程,我会很高兴。

【问题讨论】:

    标签: python amazon-web-services amazon-s3


    【解决方案1】:

    查看此 AWS 文档。我认为这会很有用。

    http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html

    链接的导入部分如下:

    根据您上传的数据大小,Amazon S3 提供以下选项:

    在单个操作中上传对象 - 使用单个 PUT 操作,您可以上传最大为 5 GB 的对象。 有关更多信息,请参阅在单个操作中上传对象。 分段上传对象——使用分段上传 API,您可以上传最大 5 TB 的大型对象。 分段上传 API 旨在改善较大对象的上传体验。您可以分段上传对象。这些对象部分可以以任意顺序独立上传,也可以并行上传。您可以对大小从 5 MB 到 5 TB 的对象使用分段上传。有关更多信息,请参阅使用分段上传 API 上传对象。 我们建议您通过以下方式使用分段上传:

    如果您要通过稳定的高带宽网络上传大型对象,请使用分段上传,通过并行上传对象部分以实现多线程性能,从而最大限度地利用您的可用带宽。 如果您通过不稳定的网络上传,请使用分段上传通过避免上传重新启动来提高对网络错误的恢复能力。使用分段上传时,您需要仅重试上传在上传过程中中断的部分。您无需从头开始重新上传您的对象。 有关多部分上传的更多信息,请参阅多部分上传概述。

    【讨论】:

    • @Ivar 谢谢!我没有想到这一点,但你提出了一个很好的观点。
    • 分段上传不允许您上传一个源文件并将其拆分为多个对象。它允许您将一个源文件的一部分并行上传到 S3 中的 一个 对象。
    • @jarmod 谢谢。你说的很对。
    • @Qaqa 我认为桶大小没有任何限制。 stackoverflow.com/questions/3980968/…
    【解决方案2】:

    S3 存储桶没有大小限制,因此通常没有理由跨存储桶拆分文件。

    如果您真的想跨存储桶拆分文件(我不建议这样做),您可以将前 25% 的字节写入存储桶 A 中的对象,将接下来 25% 的字节写入存储桶 B 中的对象等。但这有点复杂(您必须拆分源文件并仅上传相关字节),然后您必须稍后将它们组合起来以检索完整的文件。

    为什么要跨存储桶拆分文件?

    【讨论】:

    • 感谢您的回答。问题是我需要为我的项目这样做。所以想知道如何在上传时拆分文件,或者有什么方法可以将其拆分到多个存储中
    • 使用客户端文件 i/o 读取源文件的相关部分,然后使用使用 boto3 的 put_object(ACL='private', Body=b'bytes', ... )
    • 非常感谢。你的评论很有帮助。再次感谢您
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多