我怎样才能复制文件大于5 GB的Amazon S3吗?文件、GB、Amazon

由网友(谁给我的QQ喂了止咳糖浆)分享简介:Amazon S3的REST API文档说,有5GB的上传在PUT操作的大小限制。文件大于要使用多上传。精细。不过,我需要什么本质上是重命名,可能是大于文件。据我知道有没有重命名或移动操作,因此,我必须将文件复制到新的位置并删除旧的。究竟是与文件大于5GB做了什么?我要做一个多上传从桶本身呢?在这种情况下,如何拆分零...

Amazon S3的REST API文档说,有5GB的上传在PUT操作的大小限制。文件大于要使用多上传。精细。

不过,我需要什么本质上是重命名,可能是大于文件。据我知道有没有重命名或移动操作,因此,我必须将文件复制到新的位置并删除旧的。究竟是与文件大于5GB做了什么?我要做一个多上传从桶本身呢?在这种情况下,如何拆分零件文件的工作?

从阅读博托源它似乎并不像它这样的事会自动对文件大于5GB。是否有任何内置的支持,我错过了?

解决方案   

据我知道有没有重命名或移动操作,因此我有   将文件复制到新的位置并删除旧的。

这是正确的,这是pretty的容易做的一个的 PUT对象 - 复制的操作,随后是 DELETE对象的操作(都其中,在课程博托的支持,请参阅copy_key()和delete_key()):

  

此实施PUT操作的创建对象的副本   已存储在Amazon S3中。认沽复制操作是一样的   为执行GET,然后付诸表决。添加请求头,   的X AMZ-复制源,使得PUT操作的源对象复制到   目的地桶。

然而,这的确是不可能的对象/文件大于5 GB:

  

注意   [...]您在单个原子创建的对象了在大小副本5 GB   使用操作此API。 但是,对于复制对象大于   5 GB,则必须使用多部分上传API 。对于概念   信息[...],去上传对象使用多上传 [...] [重点煤矿] 的

由宝途的手段copy_part_from_key()方法;不幸的是,所需的做法是不各自拉请求#425以外的记录(允许多部分拷贝命令)(我没有尝试过这个自己尚未虽然):

进口博托 S3 = boto.connect_s3('访问','秘密') B = s3.get_bucket('destination_bucket) MP = b.initiate_multipart_upload('TMP /大复制test.mp4) mp.copy_part_from_key('source_bucket','路径/要/来源/键,1,0,999999999) mp.copy_part_from_key('source_bucket','路径/要/来源/键,2,10亿,1999999999) mp.copy_part_from_key('source_bucket','路径/要/来源/键,3,20亿,2999999999) mp.copy_part_from_key('source_bucket','路径/要/来源/键,4,3000000000 3999999999) mp.copy_part_from_key('source_bucket','路径/要/来源/键,5,40亿,4999999999) mp.copy_part_from_key('source_bucket','路径/要/来源/键,6,50亿,5500345712) mp.complete_upload() 千元SSD之王 OCZ Agility 3 120G评测

您可能需要研究如何在Java或.NET实现这个最终的各样品,这可能会提供更深入地了解的一般方法,看的

阅读全文

相关推荐

最新文章