检查存储在s3上的文件与本地文件的一致性
s3-consistency-checker的Python项目详细描述
aws s3 sync太棒了!
但如果你真的对你珍贵的档案安全心存疑虑, 在删除之前,最好仔细检查上传到s3的内容 它们来自本地文件系统
这个工具正是这样做的:
- 递归列出本地文件
- 询问S3他们的尺寸和ETag
- 将其与本地计算的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,拆分