上传档案AWS Glacier Python脚本

时间:2018-08-09 09:02:28

标签: python-3.x amazon-web-services boto3 aws-cli amazon-glacier

我正在尝试制作一个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 ==>表示操作成功

但是我的保管库大小没有增加,并且我无法在其中找到文件

我想念什么?

预先感谢

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了它不起作用的原因,我需要按如下方式对内存中的文件/文件部分进行充电:

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

我希望它可以帮助遇到相同问题的任何人

欢呼