繁体   English   中英

python boto3分段上传到不同区域中的存储桶

[英]python boto3 multipart upload to buckets in different zones

我遵循s3文档和示例,使用boto3库将我的大文件作为一部分上传到了亚马逊s3存储中。 但是,官方文件中的信息对我来说还不够。 就我而言,我在不同的区域中有多个存储,我应该将我的部件(总共500 GB)上传到不同的存储中。 我想看一个示例,如何使用boto3库将多个零件上传到不同区域中的不同S3存储。 任何信息对我来说都是宝贵的。 感谢您的阅读

boto3文档

boto3示例

好的,您似乎对某些术语感到困惑。 让我们定义一些术语:

  • 地区:包含多个可用区的地理位置,例如,伦敦,俄亥俄州
  • 可用区:一个数据中心(或多个)。 一个区域中的每个可用区在地理位置上都是分开的,以确保高可用性
  • 区域服务:包括Amazon S3在内的一些服务是区域服务 这意味着它将自动在可用区之间复制数据。
  • 存储桶: Amazon S3中对象的存储位置。 一个桶仅存在于一个区域中
  • 对象:存储桶中的文件

现在,回答您的问题:

一个对象仅存在于一个存储桶中。 无法在存储桶之间分割对象。 (而且,由于存储桶在区域中不存在,因此也无法在区域之间进行拆分。)

如果希望在区域之间复制对象,请使用跨区域复制 这将自动将对象从一个存储桶复制到另一个存储桶。

Amazon S3中对象的最大大小为5TB,但是您确实真的不想变大。 大多数大数据应用程序使用许多较小的文件 (例如5MB)。 这允许跨多个进程并行加载 ,这通常在Hadoop中完成。 它也允许通过简单地添加文件而不是更新现有文件来添加新数据。 (顺便说一句,您不能追加到S3对象,只能替换它。)

将数据上传到S3的最简单方法是使用AWS命令行界面(CLI)

多部分上传仅仅是通过将单个对象拆分为多个部分,上传每个部分然后将它们缝合在一起的方式来上传单个对象。 一旦实际对象被上传,上传的方法就与它们无关。

您应该始终将数据存储在处理位置附近。 因此,如果需要在多个区域中进行处理,则仅在区域之间复制数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM