跳转到主要内容

去重文件并将它们发送到云端

项目描述

dedoop

Build Status

数字保存工作中,您有时可能会接受一个磁盘或随机的文件集合,并希望检查所有这些文件以寻找重复项,并以统一的方式将它们复制到新位置,同时保留原始路径作为元数据以帮助您处理数据。好吧,这也许是一个有点利基的使用场景,但这是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 (4.5 kB 查看散列)

上传时间

由以下组织支持