Zoph/使用命令行工具
许多用户几乎完全使用Zoph Web界面来使用Zoph。但是,更高级的用户可能更喜欢使用命令行界面(CLI)来完成某些任务。Zoph有一个名为zoph的CLI客户端,可用于导入照片并对数据库中已有的照片进行(批量)更改。
可以在此处找到所有选项的详细概述。
首先,您将需要一个有效的zoph.ini文件才能使用CLI客户端。如果您在系统上安装了多个Zoph,与Web界面相比,一个重要的区别是CLI无法自动确定您尝试将照片导入到哪个Zoph安装(实例)。默认情况下,它将采用第一个实例,否则您需要指定--instance CLI选项。请参阅zoph.ini以获取一些示例。
配置页面(在管理员下)中有一些与导入相关的选项。有关概述,请参见右侧的屏幕截图。这些选项应该是不言自明的。
当然,您希望告诉Zoph它应该导入哪些照片。照片列表始终最后指定。您可以简单地指定文件名,但您也可以使用shell的“通配符”功能一次指定多张照片。
假设您在一个目录中有一堆照片加上一个文本文件
zoph@zoph $ ls IMG_1203.JPG IMG_1207.JPG IMG_1211.JPG IMG_1215.JPG IMG_1219.JPG IMG_1204.JPG IMG_1208.JPG IMG_1212.JPG IMG_1216.JPG IMG_1220.JPG IMG_1205.JPG IMG_1209.JPG IMG_1213.JPG IMG_1217.JPG IMG_1221.JPG IMG_1206.JPG IMG_1210.JPG IMG_1214.JPG IMG_1218.JPG photos.txt
如果要导入所有照片,可以执行以下操作
zoph@zoph $ zoph *
但是,当zoph尝试导入文本文件时,这将导致错误,因此最好执行以下操作
zoph@zoph $ zoph *.JPG
甚至
zoph@zoph $ zoph IMG_12*.JPG
但是,如果您只想导入其中的一些照片,例如,1203到1205、1210到1219(除了1213)、1220和1221。当然,您可以单独指定每个文件
zoph@zoph $ zoph IMG_1203.JPG IMG_1204.JPG IMG_1205.JPG IMG_1210.JPG IMG_1211.JPG IMG_1212.JPG IMG_1214.JPG IMG_1215.JPG IMG_1216.JPG IMG_1217.JPG IMG_1218.JPG IMG_1219.JPG IMG_1220.JPG IMG_1221.JPG
好吧,我不知道你们,但我肯定没有购买电脑是为了自己做事,所以为什么不让电脑来处理呢?
zoph@zoph $ zoph IMG_120[3-5].JPG IMG_121[^3]*.JPG IMG_122*.JPG
这样节省了很多输入时间,不是吗?顺便说一下,这不是zoph的功能,而是您shell的功能(可能是Bash)。
您可以像上面描述的那样导入照片,然后使用Zoph Web界面来组织它们,但为什么不立即组织它们呢?
您可以将照片放在一个或多个相册和一个或多个类别中(好吧,实际上是零个或多个,因为您不必将它们放在相册或类别中)。为此,请使用--album和--category命令行选项。如果照片上有任何人,您可以使用--person选项将人员添加到照片中。请记住,照片列表始终位于其他选项之后。重要的是要意识到相册、类别或人物必须已经存在于数据库中。
导入IMG_1300.JPG并将其放在Summer相册和Landscapes类别中
zoph@zoph $ zoph --album "Summer" --category "Landscapes" IMG_1300.JPG
导入john.jpg并将其放在Family相册、Portraits类别中,并指定John Doe在图片中
zoph@zoph $ zoph --album "Family" --category "Portraits" --person "John Doe" john.jpg
导入family.jpg并将其放在Family和Summer相册中,并指定John Doe、Johnny Doe和Jane Doe在图片中
zoph@zoph $ zoph --album "Family" --album "Summer" --category "Portraits" --person "John Doe, Johnny Doe, Jane Doe" family.jpg
导入guitarists.jpg并将其放在Music和Musicians类别中,并指定Hank Williams、Jimi Hendrix和Brian May在图片中
zoph@zoph $ zoph --category "Music, Musicians" --person "Hank Williams" --person "Jimi Hendrix" --person "Brian May" guitarists.jpg
如您所见,您可以通过多次重复--album、--category或--person选项,或者只指定一次并为其提供一个列表(用逗号分隔)的相册、类别或人物来添加多个相册、类别或人物。
当然,您还想记录照片是在哪里和由谁拍摄的。这与相册、类别和人物的工作方式几乎相同,除了您只能存储每个一个。同样,人员和地点必须在使用CLI之前存在于数据库中。使用--photographer选项指定摄影师,使用--location选项指定位置。
导入IMG_1400.JPG并将John Doe设置为摄影师
zoph@zoph $ zoph --photographer "John Doe" IMG_1400.JPG
导入IMG_1401.JPG并设置“柏林”为照片拍摄地点
zoph@zoph $ zoph --location "Berlin" IMG_1401.JPG
Zoph 可以存储关于您照片的更多属性。其中许多属性将自动从照片的 EXIF 信息中读取。您也可以使用--field选项手动设置这些字段。有关字段的完整列表,请参阅--field。
导入IMG_1416.JPG并设置标题
zoph@zoph $ zoph --field "Title=A nice photo" IMG_1416.JPG
在导入过程中,Zoph 会将您的照片移动(或复制)到您设置为“image_dir”的目录中。您可以在zoph.ini中设置此目录。在此目录下,Zoph 可以创建子目录。这由--path、--dateddirs和--hierarchical选项控制。使用--path,您可以手动设置一个路径,该路径将插入“image_dir”和文件名之间。使用--dateddirs和--hierarchical,Zoph 将根据照片的(EXIF-)日期创建目录。如果您同时指定了路径名和--dateddirs或--hierarchical,则位置将首先包含路径,然后是日期目录。
假设 IMG_1480.JPG 拍摄于 2010 年 5 月 5 日,IMG_1481.JPG 拍摄于 2010 年 5 月 13 日,并且 image_dir 设置为/data/photos.
zoph@zoph $ zoph IMG_1480.JPG IMG_1481.JPG zoph@zoph $ ls /data/photos mid thumb IMG_1480.JPG IMG_1481.JPG
好的,现在让我们添加一个 --path
zoph@zoph $ zoph --path "family" IMG_1480.JPG IMG_1481.JPG zoph@zoph $ ls /data/photos family zoph@zoph $ ls /data/photos/family mid thumb IMG_1480.JPG IMG_1481.JPG
以及 --dateddirs
zoph@zoph $ zoph --dateddirs IMG_1480.JPG IMG_1481.JPG zoph@zoph $ ls /data/photos 2010.05.05 2010.05.13 zoph@zoph $ ls /data/photos/2010.05.05 mid thumb IMG_1480.JPG
如果您只有少量照片,这当然很好,但是当您的收藏不断增长并且您拍摄的照片跨越数百天时,您最终将拥有数百个日期目录。出于这个原因,存在分层日期目录
zoph@zoph $ zoph --hierarchical IMG_1480.JPG IMG_1481.JPG zoph@zoph $ ls /data/photos 2010 zoph@zoph $ ls /data/photos/2010 05 zoph@zoph $ ls /data/photos/2010/05 05 13 zoph@zoph $ ls /data/photos/2010/05/05 mid thumb IMG_1480.JPG
当然,您也可以同时使用路径和日期目录
zoph@zoph $ zoph --path "family" --hierarchical IMG_1480.JPG zoph@zoph $ zoph --path "family" --dateddirs IMG_1481.JPG zoph@zoph $ ls /data/photos family zoph@zoph $ ls /data/photos/family 2010 2010.05.13
(顺便说一句,当同时指定--dateddirs和--hierarchical时,分层将优先。)
使用--dirpattern CLI 选项,您可以根据照片所在的目录自动分配相册、类别、人物、摄影师、位置或路径。您可以通过指定一个模式来做到这一点,Zoph 将根据该模式使用目录名称分配到正确的组织器。此模式由一系列字母组成,其中每个字母代表一个目录。您可以使用的字母为:a(相册)、c(类别)、l(位置)、p(人物)、P(摄影师)和D(路径)。
假设您有以下目录结构
|- John Doe | |- Walk in the park | | |- Trees | | | |- IMG_2001.JPG | | | |- IMG_2002.JPG | | | |- Flowers | | | |- IMG_2003.JPG | | |- Flowers | | |- IMG_2004.JPG | |- A day in the forest | | |- Trees | | | |- IMG_2005.JPG | | | |- IMG_2006.JPG | | | |- Birds | | | |- IMG_2007.JPG | | |- Animals | | |- IMG_2008.JPG | |- Summer Holiday | |- IMG_2009.JPG | |- IMG_2010.JPG |- Jane Doe |- A day in the forest | |- Trees | | |- DSC_1000.JPG | | |- DSC_1001.JPG | | |- Birds | | |- DSC_1002.JPG | |- Animals | |- DSC_1003.JPG |- Summer Holiday |- DSC_1004.JPG |- DSC_1005.JPG
现在,您可以进入顶级目录并运行带有--dirpattern选项的 Zoph 导入,以自动为每张照片分配摄影师、相册和一些类别
zoph --import -r --dirpattern "Pacc" *
Zoph 现在将导入整个目录结构,使用第一级目录名称分配摄影师(dirpattern 中的P),使用第二级目录名称分配相册(a),使用第三级和第四级目录名称分配类别(cc)。在此示例中,IMG_2001.JPG至IMG_2010将以“John Doe”作为摄影师存储,以及照片DSC_1000.JPG至DSC_1005.JPG将以“Jane Doe”作为摄影师存储。IMG_2001.JPG至IMG_2004.JPG将具有“A walk in the park”相册。
IMG_2005.JPG至IMG_2008.JPG以及DSC_1000.JPG至IMG_1003.JPG将位于“A day in the forest”相册中。
IMG_2009.JPG, IMG_2010.JPG, DSC_1004.JPG和DSC_1005.JPG将位于“Summer Holiday”相册中。
IMG_2001.JPG, IMG_2002.JPG, IMG_2003.JPG, IMG_2005.JPG至IMG_2007.JPG和DSC_1000.JPG至IMG_1002.JPG将位于“Trees”类别中。
IMG_2003.JPG和IMG_2004.JPG将位于“Flowers”类别中。这意味着IMG_2003.JPG将同时分配到“Trees”和“Flowers”。同样,DSC_1002.JPG将同时分配到“Trees”和“Birds”。
IMG_2008.JPG和DSC_1003.JPG将位于“Animals”类别中。
最后,“Summer Holiday”相册中的照片将不会分配任何类别。
Zoph CLI 客户端有几个选项可以控制其工作方式,上面已经给出了--dateddirs和--hierarchical的示例。更多设置可以在选项下找到。