我正在尝试制作一个python脚本,允许我创建/删除/列出保险库,执行作业,列出/描述保险库作业,上传/下载档案,以及制作和获取库存。
我正在使用awscli
和boto3
python3包
当我使用命令行上传文件时,我面临着一些非常奇怪的事情:
aws glacier upload-archive --vault-name <vault_name> --archive-description <archive_name> --body <file_2_upload> --account-id -
其中vault_name
,archive_name
,file_2_upload
是在执行脚本时传递的变量,并且在使用account-id
命令执行脚本之前设置了aws configure
它需要一段时间来处理文件大小,但它可以按预期工作
尝试使用我的脚本时(这是负责备份的部分)
glacier = boto3.client('glacier')
upload = glacier.upload_archive(vaultName=vault, body=archive, archiveDescription=name)
答案几乎是立竿见影的,输出显示的是这样的
HTTP Code : 201
==>这意味着运营成功
但是我的保险库大小没有增加,我找不到该文件
我错过了什么?
提前致谢
好吧,我终于找到了它无法工作的原因,我需要在内存中对文件/ filepart进行充电,如下所示:
with open(archive, 'rb') as upload:
archive_upload = upload.read(size)
glacier_upload = glacier.upload_archive(vaultName=vault, archiveDescription=name, body=archive_upload)
我希望它可以帮助任何面临同样问题的人
干杯