2017-04-10 52 views
1

我需要将更大的文件上传到AWS Glacier的valut。由于尺寸的原因,我无法在一个请求中完成,因此我需要将其拆分为较小的部分并使用分段上传。使用Boto3(Python)向AWS Glacier高级分段上传?

Boto3是否包含一个需要大文件的方法,split并将它上传到一个一个的部分? 我可以看到Java客户端具有这样的方法(从AWS文档拍摄):

高层API提供了您可以用它来上传任何大小的档案的方法。根据您要上传的文件,该方法可以通过单个操作上传档案,或使用Amazon Glacier中的分段上传支持部分上传档案。

我试着使用:

boto3.client(...).upload_archive(...) 

,但不分割文件,我得到一个错误。

是否有任何其他方式做到这一点,而没有实现所有这些低级的东西(拆分文件,发送多个请求,完成上传...)?

+0

请查找使用s3transfer配置的upload_file()/ upload_fileobj()配置参数http://boto3.readthedocs.io/en/latest/reference/customizations/s3.html#boto3.s3.transfer.TransferConfig – mootmoot

+0

@mootmoot我需要将它发送到AWS Glacier,而不是AWS S3。 – lenrok258

+0

冰川模块不使用s3传输。您可以在此处询问您的问题/请求:https://github.com/boto/boto3 虽然您可以使用S3作为解决方法。即使用s3上传,并在1天内将生命周期转换为Glacier。 – mootmoot

回答

-1

也许这是你在找什么? https://boto3.readthedocs.io/en/latest/reference/services/glacier.html#Glacier.Client.upload_multipart_part

我会从文档中添加一些相关信息。

upload_multipart_part(** kwargs)

该操作上传存档的一部分。您可以按任何顺序上传存档部件。您也可以并行上传它们。您可以上传多达10,000份的分段上传内容。

亚马逊冰川拒绝您上传部的要求,如果任何的 下列条件为真:

  • SHA256树哈希值不匹配,以保证部分数据不 传输损坏,则计算SHA256树散件 并将其包含在您的请求中。在收到零件数据后,亚马逊 Glacier也计算SHA256树形散列。如果这些散列值不匹配 ,则操作失败。
  • 部件尺寸不匹配除最后一部分以外,每个部件的尺寸 必须匹配 对应的InitiateMultipartUpload请求中指定的尺寸。最后一个 零件的尺寸必须与指定尺寸相同或更小。
  • 范围不对齐请求中的字节范围值不与 请求中指定的部件大小对齐。例如,如果指定4194304字节(4 MB)的零件大小,则0到4194303个字节(4 MB-1)和4194304(4 MB)到8388607 (8 MB-1)是有效的零件范围。但是,如果将范围值设置为 2 MB到6 MB,则范围与部件大小不一致,并且上传将失败。

这里是请求syntx

response = client.upload_multipart_part(
vaultName='string', 
uploadId='string', 
range='string', 
body=b'bytes'|file 

和参数描述

ACCOUNTID(字符串)

的ACCOUNTID值是AWS帐户ID的ID拥有保险库的帐户。您可以指定AWS账户ID或可选的单个' - '(连字符),在这种情况下,Amazon Glacier将使用与用于签署请求的凭证关联的AWS账户ID。如果您使用帐户ID,请不要在ID中包含任何连字符(' - ')。

VAULTNAME(字符串) [REQUIRED]

保管库的名称。

UPLOADID(字符串) [REQUIRED]

多部分上载的上载ID。

校验(string)的数据的

的SHA256散列树被上传。

范围(字符串)

标识将在该部分被上传在组装归档字节的范围内。 Amazon Glacier使用这些信息以正确的顺序组装档案。该报头的格式遵循RFC 2616.一个示例报头是Content-Range:bytes 0-4194303/*。

(字节或可搜索文件状物体)

要上传的数据。

+0

考虑在这里添加信息,而不仅仅是一个链接。如果网络地址发生变化,这将保持问题的有用性。 – user3486184

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/16926968) – whrrgarbl