将大量档案同时分多个部分上传到亚马逊冰川。
glacier_tool的Python项目详细描述
简介
这是一个工具,可以让您快速地将大量的档案放入Glacier,这是一个超低成本的存储解决方案。上传速度快,维护成本低(目前为10美元/兆字节/月),但所有检索请求都有4小时的延迟,下载窗口有限。
注释
- 这个项目是为了大量上传。它不做小的上传(目前的机制是,这个项目只提供快速上传的机制)。我找不到另一个可靠的,当前的工具来做大量上传,所以我写了一个。我将在不久的将来编写一个下载工具。在此之前,使用已经存在的东西或通过问题请求一个。
- 很多人/大多数人用来访问aws服务(包括glacier)的amazon库(boto)目前对于多部分上传来说已经损坏,而对于python 3来说,对于多部分上传来说似乎运行良好的版本已经损坏。因此,这个库使用了python 2.7下的boto版本2.29.1。
用法
该命令在命令行中有完整的文档记录。只需提供“-h”参数即可打印用法:
$ gt_upload_large -h usage: gt_upload_large [-h] [-em ESTIMATED_MBPS] [-pt PART_SIZE] vault_name filepath description Push a large archive into long-term storage. positional arguments: vault_name Vault name filepath File-path to upload description Description of uploaded file optional arguments: -h, --help show this help message and exit -em ESTIMATED_MBPS, --estimated-mbps ESTIMATED_MBPS Mbps to estimate a duration against -pt PART_SIZE, --part-size PART_SIZE Part-size in bytes. Defaults to 4M. Must be between 1M and 4G.
要执行上载,您必须在环境中定义aws访问和密钥:
$ export AWS_ACCESS_KEY=XXX $ export AWS_SECRET_KEY=YYY $ gt_upload_large image-backups /mnt/tower/backups/images-main-2010-20150617-2211.tar.xz images-main-2010-20150617-2211.tar.xz -em 11.33 Uploading: [/mnt/array/backups/images-main-2010-20150617-2211.tar.xz] Size: (15.78) G Start time: [2015-07-05 01:22:01] Estimated duration: (3.17) hours => [2015-07-05 04:32:11] @ (11.33) Mbps Archive ID: [IEGZ8uXToCDIgO3pMrrIHBIcJs...YyNlPigEwIR2NA] Duration: (3.16) hours @ (11.37) Mbps $ gt_upload_large image-backups /mnt/tower/backups/images-main-2011-20150617-2211.tar.xz images-main-2011-20150617-2211.tar.xz -em 11.37 Uploading: [/mnt/array/backups/images-main-2011-20150617-2211.tar.xz] Size: (26.66) G Start time: [2015-07-05 10:07:58] Estimated duration: (5.33) hours => [2015-07-05 15:28:03] @ (11.37) Mbps
注意,输出告诉您上传的实际速率(我使用的boto调用不提供用于提供实时反馈的进度回调)。可以使用“-em”参数将此值传递到下一次上载的命令中,以估计完成之前的时间。
最好在某个地方记录存档ID。你需要四个小时才能完成一个库存请求(获得你的档案清单),亚马逊只需每二十四小时上传一次你的档案清单(因此你甚至在第一天都无法获得清单)。