首页 文章

从AWS Glacier归档检索

提问于
浏览
0

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

它返回了我的档案ID, I didn't save at the time 和我通过了AWS文档,档案检索需要存档ID .

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

job = archive.initiate_archive_retrieval()

这将返回一个glacier.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 回答

  • 2

    您可以通过运行文件库清单来获取所有ID .

    ...您可以使用启动作业(POST作业)来启动库的新库存检索 . 清单包含用于使用“删除存档”(DELETE存档)删除存档的存档ID . 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

相关问题