CLI Immich
Immich имеет интерфейс командной строки (CLI), который позволяет выполнять определенные действия из командной строки.
Функции
- Загрузка фото и видео в Immich
- Проверка версии сервера
Больше функций планируется в будущем.
Если вы хотите импортировать ваш архив Google Photos, мы рекомендуем использовать этот поддерживаемый сообществом инструмент immich-go
Требования
- Node.js 20 или выше
- Npm
Если вы не можете установить node/npm, доступна и версия через Docker.
Установка (NPM)
npm i -g @immich/cli
ПРИМЕЧАНИЕ: если вы ранее устанавливали устаревший CLI, вам потребуется сначала удалить его:
npm uninstall -g immich
Установка (Docker)
Если npm недоступен в вашей системе, вы можете попробовать версию через Docker.
docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://your-immich-instance/api -e IMMICH_API_KEY=your-api-key ghcr.io/immich-app/immich-cli:latest
Измените переменные окружения IMMICH_INSTANCE_URL
и IMMICH_API_KEY
, чтобы они подходили вам. Вы можете также использовать файл окружения Docker для хранения вашего секретного API-ключа.
Эта команда docker run
напрямую выполняет команду immich
внутри контейнера. Вы можете напрямую добавить необходимые параметры (смотрите раздел "usage") к командной строке, например так:
docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://your-immich-instance/api -e IMMICH_API_KEY=your-api-key ghcr.io/immich-app/immich-cli:latest upload -a -c 5 --recursive directory/
Использование
Использование
$ immich
Использование: immich [options] [command]
Интерфейс командной строки для Immich
Опции:
-V, --version вывести номер версии
-d, --config-directory <directory> Директория конфигурации, где будет храниться auth.yml (по умолчанию: "~/.config/immich/", env:
IMMICH_CONFIG_DIR)
-u, --url [url] URL сервера Immich (env: IMMICH_INSTANCE_URL)
-k, --key [key] API-ключ Immich (env: IMMICH_API_KEY)
-h, --help показать справку по команде
Команды:
login|login-key <url> <key> Вход с использованием API-ключа
logout Удалить сохраненные учетные данные
server-info Показать информацию о сервере
upload [options] [paths...] Загрузить ресурсы
help [command] показать справку по команде
Команды
Команда загрузки поддерживает следующие опции:
Опции
Использование: immich upload [paths...] [options]
Загрузить ресурсы
Аргументы:
paths Один или несколько путей к ресурсам для загрузки
Опции:
-r, --recursive Рекурсивно (по умолчанию: false, env: IMMICH_RECURSIVE)
-i, --ignore <pattern> Шаблон для игнорирования (env: IMMICH_IGNORE_PATHS)
-h, --skip-hash Не хэшировать файлы перед загрузкой (по умолчанию: false, env: IMMICH_SKIP_HASH)
-H, --include-hidden Включать скрытые папки (по умолчанию: false, env: IMMICH_INCLUDE_HIDDEN)
-a, --album Автоматически создавать альбомы на основе имени папки (по умолчанию: false, env: IMMICH_AUTO_CREATE_ALBUM)
-A, --album-name <name> Добавить все ресурсы в указанный альбом (env: IMMICH_ALBUM_NAME)
-n, --dry-run Не выполнять действия, просто показать, что будет сделано (по умолчанию: false, env: IMMICH_DRY_RUN)
-c, --concurrency <number> Количество ресурсов для параллельной загрузки (по умолчанию: 4, env: IMMICH_UPLOAD_CONCURRENCY)
-j, --json-output Вывод детальной информации в формате json (по умолчанию: false, env: IMMICH_JSON_OUTPUT)
--delete Удалить локальные ресурсы после загрузки (env: IMMICH_DELETE_ASSETS)
--no-progress Скрыть индикаторы прогресса (env: IMMICH_PROGRESS_BAR)
--watch Отслеживать изменения и загружать автоматически (по умолчанию: false, env: IMMICH_WATCH_CHANGES)
--help показать справку по команде
Обратите внимание, что указанные выше опции также могут считываться из переменных окружения.
Быстрый старт
Начните с аутентификации на вашем сервере Immich. Например:
# immich login [url] [key]
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
Это сохранит ваши учетные данные в файл auth.yml
в директории конфигурации, которая по умолчанию находится в ~/.config/immich/
. Директория может быть установлена с помощью опции -d
или переменной окружения IMMICH_CONFIG_DIR
. Пожалуйста, храните файл в безопасности, либо выполните команду выхода после завершения, либо удалите его вручную.
После аутентификации вы можете загружать ресурсы на ваш сервер Immich.
immich upload file1.jpg file2.jpg
По умолчанию подкаталоги не включаются. Для загрузки каталога, включая подкаталоги, используйте опцию --recursive:
immich upload --recursive directory/
Если вы не уверены в результате, вы можете использовать опцию --dry-run
, чтобы увидеть, что будет сделано, без выполнения каких-либо действий.
immich upload --dry-run --recursive directory/
По умолчанию команда загрузки будет хэшировать файлы перед их загрузкой. Это нужно для того, чтобы избежать загрузки одного и того же файла несколько раз. Если вы уверены в уникальности файлов, вы можете пропустить этот шаг, передав опцию --skip-hash
. Обратите внимание, что Immich всегда выполняет свое собственное дублирование через хэширование, поэтому это всего лишь соображение производительности. Если у вас хорошая пропускная способность, возможно, будет быстрее пропустить хэширование.
immich upload --skip-hash --recursive directory/
Вы можете автоматически создавать альбомы на основе имени папки, передав опцию --album
. Это автоматически создаст альбомы для каждого загруженного ресурса на основе имени папки, в которой он находится.
immich upload --album --recursive directory/
Вы также можете выбрать загрузку всех ресурсов в определенный альбом с помощью опции --album-name
.
immich upload --album-name "Мои летние каникулы" --recursive directory/
Возможно избежать загрузки ресурсов, которые соответствуют глоб-шаблону, передав опцию --ignore
. См. документацию библиотеки для получения информации о том, как использовать глоб-шаблоны. Вы можете добавить несколько шаблонов исключения, если это необходимо.
immich upload --ignore **/Raw/** --recursive directory/
immich upload --ignore **/Raw/** **/*.tif --recursive directory/
По умолчанию скрытые файлы пропускаются. Чтобы включить скрытые файлы, используйте опцию --include-hidden
:
immich upload --include-hidden --recursive directory/
Вы можете использовать опцию --json-output
, чтобы получить json-вывод с ключами newFiles
, duplicates
и newAssets
. Из-за некоторого логирования вы должны удалить первые три строки вывода, чтобы получить json. Например, чтобы получить список файлов для дальнейшей обработки:
immich upload --dry-run . | tail -n +4 | jq .newFiles[]
Получение API-ключа
API-ключ можно получить в панели настроек пользователя на веб-интерфейсе.