Ir para o conteúdo principal

Bibliotecas Externas

Bibliotecas externas rastreiam ativos armazenados no sistema de arquivos fora do Immich. Quando a biblioteca externa é escaneada, o Immich carregará vídeos e fotos do disco e criará os ativos correspondentes. Esses ativos serão exibidos na linha do tempo principal e se comportarão como qualquer outro ativo, incluindo a visualização no mapa, adição a álbuns, etc. Posteriormente, se um arquivo for modificado fora do Immich, será necessário escanear a biblioteca para que as alterações apareçam.

Se um ativo externo for excluído do disco, o Immich o moverá para a lixeira ao ser escaneado novamente. Para restaurar o ativo, é necessário restaurar o arquivo original. Após 30 dias, o arquivo será removido da lixeira, e quaisquer alterações nos metadados feitas dentro do Immich serão perdidas.

:::atenção

Se você adicionar metadados a um ativo externo de qualquer forma (por exemplo, adicioná-lo a um álbum ou editar a descrição), esses metadados serão armazenados apenas no Immich e não serão persistidos no arquivo do ativo externo. Se você mover um ativo para outro local dentro da biblioteca, todos esses metadados serão perdidos na nova verificação. Isso ocorre porque o ativo é considerado um novo ativo após a movimentação. Este é um problema conhecido e será corrigido em uma versão futura.

:::

:::atenção

Devido ao cache agressivo, pode levar algum tempo para um ativo atualizado aparecer corretamente na visualização da web. É necessário limpar o cache do navegador para ver as alterações. Este é um problema conhecido e será corrigido em uma versão futura. No Chrome, você precisa abrir o console do desenvolvedor com F12, depois recarregar a página com F5 e, finalmente, clicar com o botão direito no botão de recarregar e selecionar "Esvaziar Cache e Recarregar Completamente".

:::

Caminhos de Importação

Bibliotecas externas utilizam caminhos de importação para determinar quais arquivos escanear. Cada biblioteca pode ter vários caminhos de importação para que arquivos de diferentes locais possam ser adicionados à mesma biblioteca. Os caminhos de importação são escaneados recursivamente, e se um arquivo estiver em vários caminhos de importação, ele será adicionado somente uma vez. Cada caminho de importação deve ser um diretório legível que exista no sistema de arquivos; a caixa de diálogo do caminho de importação alertará sobre quaisquer caminhos inacessíveis.

Se os caminhos de importação forem editados de forma que um arquivo externo não esteja mais em nenhum caminho de importação, ele será removido da biblioteca da mesma forma que um arquivo excluído. Se o arquivo for movido de volta para um caminho de importação, ele será adicionado novamente como se fosse um novo arquivo.

Solução de Problemas

Às vezes, uma biblioteca externa pode não ser escaneada corretamente. Isso pode acontecer se o Immich não tiver acesso aos arquivos. Aqui estão algumas coisas para verificar:

  • No arquivo docker-compose, os volumes estão montados corretamente?
  • Os volumes também estão montados em contêineres de trabalho?
  • Os caminhos de importação estão configurados corretamente e correspondem ao caminho configurado no arquivo docker-compose?
  • Certifique-se de não usar links simbólicos em suas bibliotecas de importação e de que você não está vinculando através de pontos de montagem do Docker.
  • As permissões estão configuradas corretamente?
  • Certifique-se de usar barras (/) e não barras invertidas.

Para validar se o Immich pode acessar sua biblioteca externa, inicie um shell dentro do contêiner. Execute docker exec -it immich_server bash para abrir um shell bash. Se seu caminho de importação for /data/import/photos, verifique com ls /data/import/photos. Realize a mesma verificação para os mesmos contêineres de microsserviços.

Padrões de Exclusão

Por padrão, todos os arquivos nos caminhos de importação serão adicionados à biblioteca. Se houver arquivos que não devem ser adicionados, padrões de exclusão podem ser usados para excluí-los. Padrões de exclusão são padrões glob que são comparados com o caminho completo do arquivo. Se um arquivo corresponder a um padrão de exclusão, ele não será adicionado à biblioteca. Padrões de exclusão podem ser adicionados na página de Configurações de Verificação de cada biblioteca.

Alguns exemplos básicos:

  • **/*.tif excluirá todos os arquivos com a extensão .tif
  • **/hidden.jpg excluirá todos os arquivos nomeados hidden.jpg
  • **/Raw/** excluirá todos os arquivos em qualquer diretório nomeado Raw
  • **/*.{tif,jpg} excluirá todos os arquivos com a extensão .tif ou .jpg

Caracteres especiais como @ devem ser escapados, por exemplo:

  • **/\@eaDir/** excluirá todos os arquivos em qualquer diretório nomeado @eaDir
informação

Internamente, o Immich usa o pacote glob para processar padrões de exclusão, e às vezes esses padrões são traduzidos em padrões LIKE do Postgres. A intenção é suportar exclusões básicas de pastas, mas recomendamos evitar o uso avançado, pois isso pode não ser traduzido corretamente para a sintaxe do Postgres. Consulte a documentação glob para uma visão geral básica sobre padrões glob.

Monitoramento Automático (EXPERIMENTAL)

Este recurso é considerado experimental e destinado apenas a usuários avançados. Se ativado, permitirá o monitoramento automático do sistema de arquivos, o que significa que novos ativos são importados automaticamente para o Immich sem precisar de uma nova verificação.

Se suas fotos estiverem em uma unidade de rede, o monitoramento automático de arquivos provavelmente não funcionará. Nesse caso, você terá que depender de uma atualização periódica da biblioteca para carregar suas alterações.

Solução de Problemas

Se você encontrar um erro ENOSPC, é necessário aumentar seu limite de monitoramento de arquivos. No sysctl, esta chave é chamada fs.inotify.max_user_watches e tem um valor padrão de 8192. Aumente esse número para um valor adequado maior que o número de arquivos que você estará monitorando. Observe que o Immich precisa monitorar todos os arquivos nos seus caminhos de importação, incluindo arquivos ignorados.

ERRO [LibraryService] O monitoramento da biblioteca para a biblioteca c69faf55-f96d-4aa0-b83b-2d80cbc27d98 encontrou um erro: Error: ENOSPC: Limite do sistema para número de monitores de arquivo atingido, monitorar `/media/photo.jpg`

Em casos raros, o monitor da biblioteca pode travar, impedindo o Immich de iniciar. Nesse caso, desative o monitor da biblioteca no arquivo de configuração. Se o monitor estiver ativado dentro do Immich, o aplicativo deve ser iniciado sem os microsserviços. Desative os microsserviços no arquivo docker-compose, inicie o Immich, desative o monitor da biblioteca nas configurações de administrador, feche o Immich, reative os microsserviços e depois inicie o Immich normalmente.

Tarefa Noturna

Há uma tarefa automática de escaneamento programada para ser executada uma vez ao dia. Essa tarefa também limpa quaisquer bibliotecas presas em exclusão. É possível acionar a limpeza clicando em "Escanear todas as bibliotecas" na página de gerenciamento da biblioteca.

Uso

Vamos mostrar um exemplo concreto onde adicionamos uma galeria existente ao Immich. Aqui, temos as seguintes pastas que queremos adicionar:

  • /home/user/old-pics: uma pasta contendo fotos de infância.
  • /mnt/nas/christmas-trip: fotos de uma viagem de Natal. A subpasta /mnt/nas/christmas-trip/Raw contém os arquivos brutos diretamente da DSLR. Não queremos importar os arquivos brutos para o Immich.
  • /mnt/media/videos: vídeos da mesma viagem de Natal.

Primeiro, precisamos planejar como queremos organizar as bibliotecas. As fotos da viagem de Natal devem pertencer à sua própria biblioteca, já que queremos excluir os arquivos brutos. Os vídeos e as fotos antigas podem estar na mesma biblioteca, já que queremos importar todos os arquivos. Também poderíamos adicionar todas as três pastas à mesma biblioteca se não houver arquivos correspondentes ao padrão de exclusão de Raw nas outras pastas.

Montar Volumes do Docker

O contêiner immich-server precisará de acesso à galeria. Modifique seu arquivo docker-compose conforme a seguir

  immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
+ - /home/user/old-pics:/mnt/media/old-pics:ro
+ - /mnt/media/videos:/mnt/media/videos:ro
+ - /mnt/media/videos2:/mnt/media/videos2 # ATENÇÃO: Immich poderá excluir os arquivos nesta pasta, pois não termina com :ro
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # caminho de importação no sistema Windows.
dica

A flag ro no final dá apenas acesso de leitura aos volumes. Isso impedirá que as imagens sejam excluídas na interface web ou que metadados sejam adicionados à biblioteca (XMP sidecars).

informação

Lembre-se de executar docker compose up -d para registrar as alterações. Certifique-se de que você pode ver o caminho montado no contêiner.

Criar Nova Biblioteca

Essas ações devem ser realizadas pelo administrador do Immich.

  • Clique no seu avatar no canto superior direito
  • Clique em Administração -> Bibliotecas Externas
  • Clique em Criar uma biblioteca externa…
  • Selecione qual usuário é o proprietário da biblioteca, isso não pode ser alterado posteriormente
  • Insira /mnt/media/christmas-trip e clique em Adicionar
  • Clique em Salvar
  • Clique no menu suspenso da biblioteca recém-criada
  • Clique em Escanear
  • Clique no menu suspenso da biblioteca recém-criada
  • Clique em Renomear Biblioteca e renomeie para "Viagem de Natal"

NOTA: Precisamos usar o caminho /mnt/media/christmas-trip e não o caminho /mnt/nas/christmas-trip pois todos os caminhos devem ser acessíveis pelos contêineres Docker.

Em seguida, adicionaremos um padrão de exclusão para filtrar arquivos brutos.

  • Clique no menu suspenso da biblioteca recém-criada de Natal
  • Clique em Gerenciar
  • Clique em Configurações de Escaneamento
  • Clique em Adicionar Padrão de Exclusão
  • Insira **/Raw/** e clique em salvar.
  • Clique em salvar
  • Clique no menu suspenso da biblioteca recém-criada
  • Clique em Escanear

A biblioteca da viagem de Natal será escaneada em segundo plano. Enquanto isso, vamos adicionar os vídeos e as fotos antigas a outra biblioteca.

  • Clique em Criar Biblioteca Externa.
nota

Se você encontrar um erro aqui, renomeie a outra biblioteca externa para algo diferente. Este é um bug que será corrigido em uma versão futura.

  • Clique no menu suspenso da biblioteca recém-criada
  • Clique em Editar Caminhos de Importação
  • Clique em Adicionar Caminho
  • Insira /mnt/media/old-pics e clique em Adicionar
  • Clique em Adicionar Caminho
  • Insira /mnt/media/videos e clique em Adicionar
  • Clique em Salvar
  • Clique em Escanear

Em poucos segundos, os ativos das pastas old-pics e vídeos devem aparecer na linha do tempo principal.

Visualização de Pastas

A exibição de pastas oferece uma visão adicional além da linha do tempo, semelhante a um explorador de arquivos. Ela permite que você navegue pelas pastas e arquivos na biblioteca. Este recurso é útil para uma biblioteca externa altamente organizada e personalizada ou para um modelo de armazenamento bem configurado.

Você pode habilitar este recurso em Configurações da Conta > Recursos > Pastas

Definir Intervalo de Varredura Personalizado

nota

Somente um administrador pode fazer isso.

Você pode definir um intervalo personalizado para o reprocessamento da biblioteca externa em Administração -> Configurações -> Biblioteca Externa. Você pode definir o intervalo de varredura usando os formatos predefinidos ou o formato cron. Para mais informações, você pode consultar Crontab Guru.