Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 上传存档AWS Glacier Python脚本_Python 3.x_Amazon Web Services_Boto3_Aws Cli_Amazon Glacier - Fatal编程技术网

Python 3.x 上传存档AWS Glacier Python脚本

Python 3.x 上传存档AWS Glacier Python脚本,python-3.x,amazon-web-services,boto3,aws-cli,amazon-glacier,Python 3.x,Amazon Web Services,Boto3,Aws Cli,Amazon Glacier,我正在尝试制作一个python脚本,它允许我创建/删除/列出保险库、执行作业、列出/描述保险库作业、上载/下载存档以及制作和获取库存 我正在使用awscli和boto3python3软件包 当使用命令行上传文件时,我遇到了一些奇怪的事情,如下所示: with open(archive, 'rb') as upload: archive_upload = upload.read(size) glacier_upload = glacier.upload_archive(vaultN

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

我正在使用
awscli
boto3
python3软件包

当使用命令行上传文件时,我遇到了一些奇怪的事情,如下所示:

with open(archive, 'rb') as upload:
    archive_upload = upload.read(size)
    glacier_upload = glacier.upload_archive(vaultName=vault, archiveDescription=name, body=archive_upload)
aws冰川上传档案--金库名称--档案说明--正文--帐户id-

其中,
vault\u name
archive\u name
file\u 2\u upload
是执行脚本时传递的变量,并且在脚本执行之前使用
aws configure
命令设置
帐户id

它需要一段时间来适应文件大小,但它的工作原理和预期的一样

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

glacier=boto3.client('glacier')
上传=冰川。上传\存档(vault名称=vault,正文=存档,存档描述=名称)

答案几乎是立竿见影的,输出显示如下

HTTP代码:201
==>表示操作成功

但是,我的vault大小没有增加,并且在其中找不到文件

我错过了什么


提前感谢

好的,我终于找到了它不工作的原因,我需要对内存中的文件/文件部分充电,如下所示:

with open(archive, 'rb') as upload:
    archive_upload = upload.read(size)
    glacier_upload = glacier.upload_archive(vaultName=vault, archiveDescription=name, body=archive_upload)
我希望它能帮助任何面临同样问题的人


干杯

什么是“在内存中对文件收费”?read()函数的“大小”是多少?对不起,我的英语不好,我的意思是在内存中加载文件。最后,我添加了一个方法,可以读取32MB的文件块,问题就解决了