上传档案AWS Glacier Python Scripting

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

我正在尝试制作一个python脚本,允许我创建/删除/列出保险库,执行作业,列出/描述保险库作业,上传/下载档案,以及制作和获取库存。

我正在使用awscliboto3 python3包

当我使用命令行上传文件时,我面临着一些非常奇怪的事情:

aws glacier upload-archive --vault-name <vault_name> --archive-description <archive_name> --body <file_2_upload> --account-id -

其中vault_namearchive_namefile_2_upload是在执行脚本时传递的变量,并且在使用account-id命令执行脚本之前设置了aws configure

它需要一段时间来处理文件大小,但它可以按预期工作

尝试使用我的脚本时(这是负责备份的部分)

glacier = boto3.client('glacier') upload = glacier.upload_archive(vaultName=vault, body=archive, archiveDescription=name)

答案几乎是立竿见影的,输出显示的是这样的

HTTP Code : 201 ==>这意味着运营成功

但是我的保险库大小没有增加,我找不到该文件

我错过了什么?

提前致谢

python-3.x amazon-web-services boto3 aws-cli amazon-glacier
1个回答
0
投票

好吧,我终于找到了它无法工作的原因,我需要在内存中对文件/ filepart进行充电,如下所示:

with open(archive, 'rb') as upload:
    archive_upload = upload.read(size)
    glacier_upload = glacier.upload_archive(vaultName=vault, archiveDescription=name, body=archive_upload)

我希望它可以帮助任何面临同样问题的人

干杯

© www.soinside.com 2019 - 2024. All rights reserved.