我使用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,我是否可以使用任何其他方法检索存档?如果没有,是否可以删除保险库?
答案 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