Immich-Go是一款开源工具,旨在简化将大型照片集上传到自托管 Immich 服务器的过程。
Immich-go上的工作:拿出你的照片:
导入您的照片:
/path/to/your/files/takeout-*.zip作为文件名。-google-photos选项。很多文件未导入:有哪些选项?
-upload-when-missing-JSON要深入了解immich-cli替代方案背后的原因,请阅读此处的动机。
⚠️ 这是早期版本,尚未经过广泛测试⚠️ 为了安全起见,保留文件的备份副本
immich-go immich-go是一个必须从终端窗口运行的命令行工具。
immich-go程序使用 Immich API。因此它需要服务器地址和有效的 API 密钥。
使用 Linux、macOS 和 FreeBSD 的朋友:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}重要的
macOS 用户必须明确允许 immich-go 运行。打开隐私和安全 > 安全设置以允许
在 Windows 系统上:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}布尔选项具有如下所示的默认值。提及公共行上的任何选项都会将该选项更改为 TRUE。要将选项强制为 FALSE,请使用以下语法: -option=FALSE 。
示例:Immich-go 检查服务器的 SSL 证书。您可以通过打开skip-verify-ssl选项来禁用此行为。只需添加-skip-verify-ssl 。 -skip-verify-ssl相当于-skip-verify-ssl=TRUE 。要关闭该功能(这是默认行为),请使用-skip-verify-ssl=FALSE
| 范围 | 描述 | 默认值 |
|---|---|---|
-use-configuration=path/to/config/file | 指定要使用的配置文件。 服务器 URL 和 API 密钥存储在 immich-go 配置文件中。下次运行时可以省略它们。 | Linux $HOME/.config/immich-go/immich-go.jsonWindows %AppData%immich-goimmich-go.jsonmacOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | Immich 服务的 URL,例如 http://:2283 或 https://your-domain.tld | |
-api=URL | Immich api 端点的 URL (http://container_ip:3301) | |
-device-uuid=VALUE | 强制设备识别 | $HOSTNAME |
-client-timeout=duration | 设置服务器调用的超时时间。持续时间是带有单位后缀的十进制数,例如“300ms”、“1.5m”或“45m”。有效的时间单位为“ms”、“s”、“m”、“h”。 | 5m |
-skip-verify-ssl | 跳过 SSL 验证以与自签名证书一起使用 | false |
-key=KEY | 由用户生成的密钥。上传的照片将属于密钥的所有者。 | |
-log-level=LEVEL | 按如下方式调整日志详细程度: - ERROR :仅显示错误- WARNING :与前一个相同加上非阻塞错误- INFO :信息消息 | INFO |
-log-file=/path/to/log/file | 将所有消息写入文件 | Linux $HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.logWindows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.logmacOS $HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log |
-log-json | 将日志输出为行分隔的 JSON 文件 | false |
-time-zone=time_zone_name | 为没有时区信息的日期设置时区 | 系统时区 |
-no-ui | 禁用用户界面 | false |
-debug-counters | 启用在日志文件旁边生成 CSV | false |
-api-trace | 启用 API 调用跟踪 | false |
upload使用此命令可从本地目录、压缩文件夹或 Google Photos 导出过程生成的所有 zip 文件上传照片和视频。
| 范围 | 描述 | 默认值 |
|---|---|---|
-album="ALBUM NAME" | 将资源导入到 Immich 专辑ALBUM NAME中。 | |
-dry-run | 预览所有将要完成的操作。 | FALSE |
-create-album-folder | 在文件夹名称后生成 immich 相册。 | FALSE |
-use-full-path-album-name | 使用文件的完整路径来确定专辑名称。 | FALSE |
-album-name-path-separator | 确定如何连接多个(子)文件夹(如果有) | |
-create-stacks | 堆叠 jpg/raw 或连拍。 | FALSE |
-stack-jpg-raw | 控制 jpg/raw 照片的堆叠。 | FALSE |
-stack-burst | 控制堆叠突发。 | FALSE |
-select-types=".ext,.ext,.ext..." | 接受的扩展列表。 | |
-exclude-types=".ext,.ext,.ext..." | 排除的扩展名列表。 | |
-when-no-date=FILE|NOW | 当无法确定拍摄日期时,请使用文件的日期或当前时间 NOW。 | FILE |
-exclude-files=pattern | 根据模式忽略文件。不区分大小写。对您需要的每个图案重复该选项。 | @eaDir/@__thumb/SYNOFILE_THUMB_*.*Lightroom Catalog/thumbnails/ |
根据特定日期微调导入:
| 范围 | 描述 |
|---|---|
-date=YYYY-MM-DD | 导入在特定日期拍摄的照片。 |
-date=YYYY-MM | 选择特定月份拍摄的照片。 |
-date=YYYY | 选择特定年份拍摄的照片。 |
使用-exclude-files=PATTERN从上传中排除某些文件或目录。对您需要的每个图案重复该选项。自动排除以下目录:
例如,以下命令排除名为 backup 或草稿的目录中的所有文件以及名称以“copy)”结尾的任何文件,如 PXL_20231006_063121958(另一个副本).jpg:
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/filesGoogle 照片管理的专用选项:
| 范围 | 描述 | 默认值 |
|---|---|---|
-google-photos | 从 Google Photos 结构化存档导入,重新创建相应的相册。 | |
-from-album="GP Album" | 在immich中创建相册并导入相册的资源。 | |
-create-albums | 控制在 Immich 中创建 Google Photos 相册。 | TRUE |
-keep-untitled-albums | 无标题专辑将导入到immich中,并以文件夹名称作为标题。 | FALSE |
-use-album-folder-as-name | 使用文件夹名称而不是专辑标题。 | FALSE |
-keep-partner | 指定包含或排除合作伙伴拍摄的照片。 | TRUE |
-partner-album="partner's album" | 将合作伙伴的资产导入给定专辑。 | |
-discard-archived | 不要导入存档资产。 | FALSE |
-auto-archive | 自动存档同时存档在 Google 相册中的照片 | TRUE |
-upload-when-missing-JSON | 上传与 JSON 元数据文件不关联的照片 | FALSE |
请阅读此处,了解为什么 Google Photos 外卖不容易处理。
目前检测到遵循此模式的突发:
所有图像必须在同一分钟内拍摄。 COVER 图像将成为堆栈的父图像
两张图像应在同一分钟内拍摄。 JPG 图像将作为封面。
请打开一个问题以涵盖更多可能性。
为了说明这一点,以下命令用于从 Google Photos 导出存档中导入 2019 年 6 月 1 日至 6 月 30 日期间拍摄的照片,同时自动生成相册:
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip Immich-go 按以下顺序获取第一个可用数据。
photoTakenTimePXL_20220909_154515546.jpgPXL_20220909_154515546.jpg/photos/2022/11/09/IMG_1234.HEICgeoDataExifgeoDatalocationEnrichment immich-go从关联的 JSON 文件中获取照片的日期。
服务器会忽略 immich-go 提供的日期,并采用 MP4 的日期,即使它不正确。
请参阅#322 元数据的创建时间戳错误
Immich-go 尝试通过文件名或文件路径确定捕获日期。
前任:
| 小路 | 照片的拍摄日期 |
|---|---|
| 照片/相册/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
| 照片/扫描/19991231.jpg | 1999-12-31 00:00:00 |
| 照片/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
| 照片/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
| 照片/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
如果该路径无法用于确定捕获日期,则 immich-go 读取文件的metadata或exif 。
duplicate使用此命令分析immich服务器的内容,以查找共享相同文件名、捕获日期但大小不同的任何文件。在删除下级副本之前,系统会获取其所属的所有相册,并将上级副本添加到其中。
| 范围 | 描述 | 默认值 |
|---|---|---|
-yes | 假设所有问题都回答“是” | FALSE |
-date | 仅检查捕获日期在给定范围内的资产 | 1850-01-04,2030-01-01 |
-ignore-tz-errors | 搜索重复项时忽略时区差异 | FALSE |
-ignore-extension | 搜索重复项时忽略文件类型扩展名 | FALSE |
immich服务器此命令检查 immich 服务器内容,删除质量较差的图像并保留相册。
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yesstack immich版本 1.83 引入了堆叠图像的功能。让我们用它来将连拍图像和 jpg/raw 图像分组在一起。
| 范围 | 描述 | 默认值 |
|---|---|---|
-yes | 假设所有问题都回答“是” | FALSE |
-date=date_range | 仅检查捕获日期在给定范围内的资产 | 1850-01-04,2030-01-01 |
tool该命令引入了命令行工具来操作您的immich服务器
album delete [regexp]此命令删除与给定模式匹配的专辑
-yes假设所有问题都是“是”(默认值:FALSE)。
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}此命令删除所有使用 YYYY-MM-DD 模式创建的相册
安装immich-go过程非常简单。访问最新版本页面并选择与您的系统兼容的二进制文件:
下载与您的计算机上的操作系统/架构相对应的存档并解压缩。
打开命令窗口,进入immich-go所在目录,输入带有必填参数和命令的命令immich-go 。
对于基于源的安装,请确保您拥有必要的 Go 语言开发工具 (https://go.dev/doc/install)。下载源文件或克隆存储库。
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' " immich-go与 nix 一起打包并通过 nixpkgs 分发。您可以尝试不安装immich-go :
nix-shell -I " nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable-small.tar.gz " -p immich-go
# Or with flakes enabled
nix run " github:nixos/nixpkgs?ref=nixos-unstable-small#immich-go " -- -help或者您可以将immich-go添加到configuration.nix的environment.systemPackages部分。
感谢 Immich 团队的出色项目! ?
该程序使用以下第三方库:
非常感谢项目贡献者: