去重文件并将它们发送到云端
项目描述
dedoop
在数字保存工作中,您有时可能会接受一个磁盘或随机的文件集合,并希望检查所有这些文件以寻找重复项,并以统一的方式将它们复制到新位置,同时保留原始路径作为元数据以帮助您处理数据。好吧,这也许是一个有点利基的使用场景,但这是dedoop被创建的原因。
dedoop将递归地读取源目录中的文件,并使用文件的SHA256校验和作为文件名将它们写入新的目标目录或云存储桶。如果某个文件在源目录中多次出现,它只会在目标位置写入一次。文件元数据(如媒体类型和原始文件名)将持久保存在一个JSON文件中,该文件在处理结束时输出。在写入云存储的情况下,将使用对象元数据来存储此信息。
安装
安装Python 3和
% pip3 install dedoop
使用方法
添加到存储
要将数据目录添加到存储位置,您可以
% dedoop add path/to/source path/to/target
例如,如果源目录看起来像这样
source
├── a.jpg
├── a.png
├── b.jpg
└── c
├── a.jpg
└── b.jpg
结果目标可能看起来像这样(假设相同名称的文件具有相同的哈希值内容)
target
├── 1e89b90b5973baad2e6c3294ffe648ff53ab0b9d75188e9fbb8b38deb9ba3341.png
├── 45d257c93e59ec35187c6a34c8e62e72c3e9cfbb548984d6f6e8deb84bac41f4.jpg
└── b6df8058fa818acfd91759edffa27e473f2308d5a6fca1e07a79189b95879953.jpg
添加到云存储
您还可以将文件写入任何由libcloud支持的云存储提供商,例如Amazon S3、Google Cloud Storage等。
通过文件扩展名限制
如果您愿意,可以使用--extensions命令行选项来限制添加的文件类型,并给出一个以逗号分隔的文件扩展名列表,以包含要包括的扩展名。所有不匹配的文件(不区分大小写)将被忽略。
% dedoop add --extensions jpg,png path/to/source path/to/target
列出云文件
在文件系统中列出文件很容易。但查看云中的内容则更为困难——特别是当 Dedoop 为每个对象附加了元数据时。使用 list 命令可以帮你做到这一点。
% dedoop ls s3://my-storage-location/
日志记录
如果你使用 --verbose 选项,你将在控制台上看到有关正在发生什么的日志消息。你可以选择使用 --log 选项将这些消息发送到你选择的日志文件。
项目详情
关闭
dedoop-0.0.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 525e0b1413446ce25ec7abe1bf99bff9937cd7e6c1b27fd3dec0d6080815dd88 |
|
MD5 | 89127923295d46ddded5aa672690d687 |
|
BLAKE2b-256 | e9abc83be9e7362b02ca835e4a0126e854e9b302b6a83d32bdb7f6a41e29ab1f |