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.json Windows %AppData%immich-goimmich-go.json macOS $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.log Windows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.log macOS $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/files
Google 照片管理的專用選項:
範圍 | 描述 | 預設值 |
---|---|---|
-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 按以下順序取得第一個可用資料。
photoTakenTime
PXL_20220909_154515546.jpg
PXL_20220909_154515546.jpg
/photos/2022/11/09/IMG_1234.HEIC
geoDataExif
geoData
locationEnrichment
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 -yes
stack
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 團隊的出色專案! ?
該程式使用以下第三方函式庫:
非常感謝專案貢獻者: