检查存储在s3上的文件与本地文件的一致性

s3-consistency-checker的Python项目详细描述


aws s3 sync太棒了!

但如果你真的对你珍贵的档案安全心存疑虑, 在删除之前,最好仔细检查上传到s3的内容 它们来自本地文件系统

这个工具正是这样做的:

  1. 递归列出本地文件
  2. 询问S3他们的尺寸和ETag
  3. 将其与本地计算的ETag进行比较

用法

$time s3-consistency-checker /data/foo s3://bucketname/foo
2017/10/14 16:30:58.729 INFO Comparing 2093 files from /data/foo with s3://bucketname/foo
2017/10/14 17:43:18.222 INFO success=2093 errors=0 files=2093 bytes=1.3TiB

real    72m20.097s
user    55m6.975s
sys     778m45.112s

$time s3-consistency-checker /data/bar s3://bucketname/baz
2017/10/14 18:47:08.620 INFO Comparing 26531 files from /data/bar with s3://bucketname/baz
2017/10/14 19:21:48.425 INFO success=26531 errors=0 files=26531 bytes=220.1GiB

real    34m42.023s
user    40m22.292s
sys     33m57.729s

$time s3-consistency-checker /data/foobar s3://bucketname/foobar
2017/10/15 02:11:00.904 INFO Comparing 11224 files from /data/foobar with s3://bucketname/foobar
2017/10/15 02:25:18.397 INFO success=11224 errors=0 files=11224 bytes=84.8GiB

real    14m18.873s
user    17m3.899s
sys     10m33.841s

内部构件

这个工具的设计是为了尽快处理大量的大文件。 它使用split命令将大文件分成块, 将它们存储在/dev/shm, 然后使用md5sum命令计算它们的校验和。 它使用单独的进程和线程来驱动它们,从而并行地执行此操作。

安装

$ pip install s3-consistency-checker

要求

  • python 3.x
  • BOTO3
  • 核心功能:md5sum,拆分

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

推荐PyPI第三方库


热门话题
java访问GridLayout JPanel中本地定义的JButton   java应该在同一个对象中使用@NotNull和@JsonProperty(必需的)   在Android Studio中编程时从何处导入依赖jar文件?   多线程Java等待在while循环内/外同步   java osgi捆绑包仍然很懒,不会自动启动   爪哇皇后碰撞   java是否可以使用hbm2ddl为某个数据库列生成默认值   java Mandelbrot集缩放和平移   Java Hyperledgerpanic:runtimr错误:无效内存地址或零指针取消引用   ibm mq是否可以在java中的mq队列开始处加载消息   地图活性。java在高于6.0的安卓版本上不起作用   一个黄瓜场景在Java中的多个实现   java使用pjsip播放mp3文件   java如何在活动之间传递自定义对象?   java除了在每个字段中循环外,还有更简单的方法来判断JPA实体是否已被修改?   关于文件拼接的java   用于更改类字段的java构造函数或函数   存储hibernate+java中的postgres geometry(point,4326)列   java ListView适配器只返回解析的最后一行。com对象Android