从AWS Glacier

时间:2017-10-26 09:39:16

标签: python amazon-web-services boto3

我使用boto3使用此处所述的代码将存档上传到AWS glacier: https://github.com/tbumi/glacier-upload/blob/develop/main.py

它返回了我的档案ID 我当时没有保存,我浏览了AWS文档,档案检索需要存档ID。

正如我从boto3文档中所理解的那样,您首先需要按如下方式创建作业:

job = archive.initiate_archive_retrieval()

这会返回一个glacier.Job对象,其中包含许多属性,例如Job id等。

然后我可以使用

response = job.get_output(
    range='string'
)

要在作业完成后3-5小时通过SNS通知后从冰川下载档案,并且作为档案的一部分,以字节为单位进行下载(默认为整个档案)。

此外,由于保险库不为空,我无法删除保管库,并且要求我删除存档,而该存档再次需要存档ID。

我还查看了他们的REST API,它再次依赖于要删除的归档ID。 这里:https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-delete.html

此外,我发现下载档案只能使用他们的REST APIS或SDK或aws-cli以编程方式完成,因此使用AWS控制台关闭门。

由于我没有存档ID,我是否可以使用任何其他方法检索存档?如果没有,是否可以删除保险库?

1 个答案:

答案 0 :(得分:2)

您可以通过运行保管库清单来获取所有ID。

  

...您可以使用启动作业(POST作业)来启动新库存   检索保险库。清单包含您使用的存档ID   使用“删除存档”(DELETE存档)删除存档。   http://boto3.readthedocs.io/en/latest/reference/services/glacier.html

因此,只需将Client.initiate_job设置为Type即可使用inventory-retrieval,并在广告资源完成后获取您的ID。 http://boto3.readthedocs.io/en/latest/reference/services/glacier.html#Glacier.Client.initiate_job