我实际上正在使用 python boto 将数据存储在我的冰川库中并启动检索 jov 和库存作业。
这个效果非常好。
但是我没有找到任何有关从冰川下载存档的方法的示例?
我已经启动了检索 jov 和库存作业,并在 4 小时后获得了请求 ID 等,但是如何使用 boto 获取我的存档?
感谢您的帮助!
要检索您的库存,您可以执行以下操作:
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 方法,您可以使用该方法检索与响应关联的数据。
假设您的检索作业已完成并且您拥有作业 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.')