Boto AWS Glacier - 检索档案

问题描述 投票:0回答:2

我实际上正在使用 python boto 将数据存储在我的冰川库中并启动检索 jov 和库存作业。

这个效果非常好。

但是我没有找到任何有关从冰川下载存档的方法的示例?

我已经启动了检索 jov 和库存作业,并在 4 小时后获得了请求 ID 等,但是如何使用 boto 获取我的存档?

感谢您的帮助!

amazon-web-services boto amazon-glacier
2个回答
5
投票

要检索您的库存,您可以执行以下操作:

import boto.glacier

c = boto.glacier.connect_to_region('us-east-1')
vault = c.get_vault('myvault')
job = vault.get_job('<your job id>')
response = job.get_output()
print response.read()

这有点令人困惑,因为对 get_output() 的调用返回一个类似字典的对象,但该对象有一个 read 方法,您可以使用该方法检索与响应关联的数据。


0
投票

假设您的检索作业已完成并且您拥有作业 ID,以下是使用 boto 下载的最小示例。

import boto.glacier

# Constants
ACCESS_KEY_ID = '<key>'
SECRET_ACCESS_KEY = '<secret key>'
VAULT_NAME = 'myVault'
REGION_NAME = 'us-east-2'
JOB_ID = '<job-id>'

file_name = 'glacier.zip'

layer2 = boto.connect_glacier(aws_access_key_id = ACCESS_KEY_ID,
                              aws_secret_access_key = SECRET_ACCESS_KEY,
                              region_name = REGION_NAME)
gv = layer2.get_vault(VAULT_NAME)
job = gv.get_job(JOB_ID)

if job.completed:
    print(f'Downloading to {file_name}')
    job.download_to_file(file_name)
else:
    print('The specified job has not completed, try again later.')
© www.soinside.com 2019 - 2024. All rights reserved.