3 个不稳定版本
0.2.0 | 2020年7月10日 |
---|---|
0.1.3 | 2020年7月10日 |
0.1.2 | 2020年7月10日 |
2586 在 命令行实用工具
72KB
1.5K SLoC
PhotoBook
一个 rust 命令行工具,用于采集、整理、从云中下载并备份您的照片。
包含 Elasticsearch 数据库和 Kibana 作为咨询界面。
安装
-
git 方法
-
首先克隆此仓库。
-
根据需要调整代码和配置。
-
然后运行
$ cargo build --release
PhotoBook 二进制文件将位于项目的
target/release
目录下。 -
最后,别忘了完成配置
photobook.toml
以获得可操作的工具(见下文)。
-
-
cargo 方法
此工具已打包并发布在 crates.io 上。
只需使用 cargo 在您的系统上安装它!$ cargo install photobook
注意:请确保将下面的配置文件复制到您的系统尝试的地方。
例如,在 Linux 系统上,photobook.toml
必须位于/home/<your user>/.config/photobook/
。
功能
PhotoBook 提供了 4 个主要功能
-
采集
此命令会创建一个源中所有图片的清单,作为文件系统或 flickr 仓库,并将其存储在 Elasticsearch 数据库中。
然后您可以根据需要查询、请求这些文档,以创建自己的相册、收藏夹等。采集命令允许 3 种操作
-
initialize 以根据源中的图片(重新)创建适当的索引:$ photobook harvest -o initialize -s flickr
-
update 以维护您的索引以保持最新状态(默认操作)
$ photobook harvest -o update -s flickr $ photobook harvest -s flickr // update is the default operation, so could be omit
-
clean 从您的索引中删除源中删除的图片
$ photobook harvest -o clean -s flickr
和 2 个源
-
local 从本地文件系统上的路径(必需)中采集
$ photobook harvest -s local -p '/home/comtelabs/pictures/'
-
flickr 连接 flickr 账户并引用其存储库中的所有照片,无论其状态如何
$ photobook harvest -o initialize -s flickr
-
-
整理
此命令执行目录到另一个目录的结构化和受监督的图片复制。
整理命令因此需要两个必需参数- from 定义源路径
- to 定义目标路径
该过程仅处理源目录中的图片,通过文件类型进行过滤。
它按年、月和日期对图片进行排序和排序,然后根据这种排序架构创建目录树,并最终根据这些标准进行存储。命令示例
$ photobook organize --from '/home/comtelabs/pictures/' --to '/data/pictures/' $ photobook organize -f '/home/comtelabs/pictures/' -t '/data/pictures/'
-
下载
此命令专门针对云照片源,正如其名所示,将从云端下载照片到本地路径。
要使用它,您首先需要采集所选云:PhotoBook数据库引用云上存储的所有照片,并跟随照片的生命周期。下载命令提供了一个源(目前为Flickr)和保存照片的目标路径。注意iCloud正在规划中!
并允许两种下载模式-
完整 下载flickr用户配置的所有照片,无论其flickr状态如何,以前尚未下载(默认功能)。
$ photobook -t '/home/comtelabs/pictures/'
-
服务器 下载存储在定义的flickr服务器上的所有照片,无论其flickr状态如何,以前尚未下载。注意您可以在Kibana的专用索引中找到服务器列表。
$ photobook -t '/home/comtelabs/pictures/' -s 936
-
-
备份
尚未发布
需求
PhotoBook与Elasticsearch数据库配合使用,并使用Kibana作为数据库查询工具。
ELK堆栈提供免费的应用程序和工具,如果您有简单需求的话。
对隐私使用的工具的个人开发者有两个主要优势
- 通过docker轻松部署 - 但如果您想的话,也可以托管一个Elastic服务器
- 带有Kibana的即用型查询工具 - 以及一个大型功能集和真正巨大的容量
如何获取Elastic?
- 对于那些不想花很多时间创建自己的数据库,也不关心其存储方式的人,您可以在本仓库根目录中找到docker-compose.yml文件。
- 对于其他人,请随意在本地服务器、VPS或其他地方安装自己的Elastic堆栈!
您可以在这里找到Elastic文档。注意,PhotoBook只需要Elasticsearch和Kibana。
如何使用Elastic Docker?
-
确保您的机器上安装了docker和docker-compose
- 如果没有,请参考根据您的系统docker和docker-compose安装文档。
-
然后只需运行和重新运行即可
$ docker-compose down && docker-compose up -d
-
您的Elastic数据库将在https://127.0.0.1:9200上监听
-
尤其是Kibana将在任何浏览器中通过https://127.0.0.1:5601可用
不是太简单了吗?
配置
配置存储在2个文件中
- 一个您必须在项目根目录中创建的
constant.rs
文件。 - 一个默认创建在您的系统用户配置目录中的
photobook.toml
文件。- 例如,在 Linux 系统上,
photobook.toml
必须位于/home/<your user>/.config/photobook/
。 - 如果您不知道文件应该存储在哪里,只需运行
photobook
命令,它将创建一个空默认文件,您可以在文件系统中搜索photobook.toml
来找到它。 - 要了解更多关于此功能的信息,请参阅directories库文档。
- 例如,在 Linux 系统上,
在公共仓库的/src目录中提供了一个constant_sample.rs
,以展示预期的配置
-
Elasticsearch
pub const ELASTIC_URL: &str = "https://127.0.0.1:9200"; pub const ELASTIC_PICTURES_INDEX: &str = "pictures"; pub const ELASTIC_FLICKR_PHOTOS_INDEX: &str = "flickr_photos";
-
Flickr
pub const FLICKR_API_URL: &str = "https://api.flickr.com/services/rest"; pub const FLICKR_NONCE: &str = "my_flickr_nonce";
在公共仓库的根目录中提供了一个photobook_sample.toml
,它将期望这些键
flickr_key = '<my flickr key>'
flickr_secret = '<my flickr secret>'
flickr_oauth_token = '<my oauth token>'
flickr_oauth_secret = '<my oauth secret>'
注意:PhotoBook使用基于OAuth 1.0的最后一个Flickr API。
请参考Flickr API 文档获取或创建您的令牌和密钥。
用法
上面已描述了一些常见用法,广泛使用参数声明的简短形式。
如需进一步解释,请咨询 CLI 帮助:帮助由 -h
或 --help
提供的命令或子命令之后提供。
例如
$ photobook --help
$ photobook harvest -h
贡献
PhotoBook 是一个开源项目,所以您可以自由使用、重用、修改和丰富它。
根据 CeCILL 许可证(与 GNU 兼容),主要要求是与作者共享您的演变和修改。
如果是这样,请只需将您的代码发送到这里!
路线图
- 备份功能
- 链式操作通常连续进行,例如:更新云源的收入,从该源下载新照片,备份目录。
- iCloud 收集和下载选项
- 简单的网页界面以咨询图片索引和深入挖掘
许可证说明
版权所有 Silvère Camponovo
在 CeCILL v2.1 许可证下发布代码和程序。请在使用之前阅读 LICENCE 文件。
依赖关系
~16–31MB
~521K SLoC