跳至内容

Zoph/使用命令行工具

来自Wikibooks,开放世界中的开放书籍

许多用户几乎完全使用Zoph Web界面来使用Zoph。但是,更高级的用户可能更喜欢使用命令行界面(CLI)来完成某些任务。Zoph有一个名为zoph的CLI客户端,可用于导入照片并对数据库中已有的照片进行(批量)更改。

可以在此处找到所有选项的详细概述。

首先,您将需要一个有效的zoph.ini文件才能使用CLI客户端。如果您在系统上安装了多个Zoph,与Web界面相比,一个重要的区别是CLI无法自动确定您尝试将照片导入到哪个Zoph安装(实例)。默认情况下,它将采用第一个实例,否则您需要指定--instance CLI选项。请参阅zoph.ini以获取一些示例。

Web界面

[编辑 | 编辑源代码]
Screenshot: import settings on configuration page
屏幕截图:配置页面上的导入设置

配置页面(在管理员下)中有一些与导入相关的选项。有关概述,请参见右侧的屏幕截图。这些选项应该是不言自明的。

指定要导入的照片

[编辑 | 编辑源代码]

当然,您希望告诉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并将其放在FamilySummer相册中,并指定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并将其放在MusicMusicians类别中,并指定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

[编辑 | 编辑源代码]

使用--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.JPGIMG_2010将以“John Doe”作为摄影师存储,以及照片DSC_1000.JPGDSC_1005.JPG将以“Jane Doe”作为摄影师存储。IMG_2001.JPGIMG_2004.JPG将具有“A walk in the park”相册。

IMG_2005.JPGIMG_2008.JPG以及DSC_1000.JPGIMG_1003.JPG将位于“A day in the forest”相册中。

IMG_2009.JPG, IMG_2010.JPG, DSC_1004.JPGDSC_1005.JPG将位于“Summer Holiday”相册中。

IMG_2001.JPG, IMG_2002.JPG, IMG_2003.JPG, IMG_2005.JPGIMG_2007.JPGDSC_1000.JPGIMG_1002.JPG将位于“Trees”类别中。

IMG_2003.JPGIMG_2004.JPG将位于“Flowers”类别中。这意味着IMG_2003.JPG将同时分配到“Trees”和“Flowers”。同样,DSC_1002.JPG将同时分配到“Trees”和“Birds”。

IMG_2008.JPGDSC_1003.JPG将位于“Animals”类别中。

最后,“Summer Holiday”相册中的照片将不会分配任何类别。

控制方式zoph工作

[编辑 | 编辑源代码]

Zoph CLI 客户端有几个选项可以控制其工作方式,上面已经给出了--dateddirs--hierarchical的示例。更多设置可以在选项下找到。




华夏公益教科书