将大量档案同时分多个部分上传到亚马逊冰川。

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。你需要四个小时才能完成一个库存请求(获得你的档案清单),亚马逊只需每二十四小时上传一次你的档案清单(因此你甚至在第一天都无法获得清单)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中使合并排序只使用(n/2+1)额外空间的算法   将随机整数作为唯一ID从java插入mysql   试图通过Maven添加MySQL连接器时的java阻碍   使用CDI从producer为HashMap注入java歧义   java如何解决htmlUnit WrapsDriver错误   使用Java插入段落和子段落的级别   java复选框和文本视图与空白对齐   在Javascript警报中显示Java列表值   java在EclipseLuna的maven项目中构建成功后如何运行   java Spring MVC 3.1请求头字符编码问题[UTF8]   java将DAO公开为web服务   java如何知道@RequestMapping的哪个参数被调用   java如何根据设备启用硬件加速   使用byaccj构建ast时出现java错误   pdf如何使用iText Java垂直显示段落中的内容   java Selenium与Apache Poi在Excel中保存错误消息   安卓gson。JsonSyntaxException:java。lang.illegalstate例外:   Flex应用程序中浏览器缩放的java问题