Flux d’intégrité de photothèque auto-hébergée pour les originaux et les dérivés

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Une frise chronologique de photos qui semble saine ne prouve pas que les originaux, la base de données et les aperçus générés sont tous intacts.

Une galerie auto-hébergée peut continuer à diffuser des miniatures mises en cache après la disparition d’un original, ou conserver des originaux parfaitement intacts tandis que les processus échouent à générer de nouveaux dérivés. Séparez l’état requis de l’état reconstructible, vérifiez les octets originaux en dehors de l’application, rapprochez les fichiers des enregistrements de la base de données et ne régénérez qu’un seul élément témoin avant de tester une restauration isolée. Arrêtez immédiatement si les sommes de contrôle changent, si le stockage source devient instable ou si un processus écrit dans les originaux.

Définir l’état requis et l’état régénérable

Répertoriez les originaux, les vidéos téléversées, les fichiers annexes, la base de données, la configuration, les secrets, les comptes utilisateurs, les albums, les modifications et les enregistrements de partage comme faisant partie de l’état requis. Répertoriez séparément les miniatures, les vidéos transcodées, les représentations vectorielles de visages et les index de recherche comme des dérivés qui ne peuvent être régénérés que si les originaux et l’état de l’application restent intacts.

Une installation auto-hébergée place généralement la bibliothèque sur un stockage de grande capacité et la base de données ou le chemin de travail sur un support plus rapide. Un guide pratique consacré au stockage d’Immich décrit la séparation entre le stockage de la bibliothèque et le stockage des données fréquemment utilisées, raison pour laquelle un contrôle d’intégrité doit couvrir chaque chemin monté, et pas uniquement le dossier parcouru par les utilisateurs.

Notez la version de l’application, l’image du conteneur, les définitions des points de montage, l’état du schéma de la base de données, l’espace libre du stockage et l’état de la file d’attente des tâches. Arrêtez-vous si un chemin requis est manquant ou devient inopinément accessible en lecture seule ; une tâche de régénération ne doit pas commencer tant que la source de vérité reste incertaine.

Prouver l’intégrité des octets originaux indépendamment de la galerie

Générez ou réutilisez un manifeste de sommes de contrôle fiable pour les originaux et comparez-le à l’arborescence actuelle en mode lecture seule. Rapprochez le nombre de fichiers, le total des octets, les fichiers illisibles, les objets inattendus de taille nulle et les chemins orphelins. Ouvrez, en dehors de la galerie, un échantillon stratifié comprenant des fichiers JPEG, HEIC, RAW, des vidéos, des fichiers d’années anciennes et des téléversements récents.

Ne déduisez pas l’intégrité des originaux à partir des miniatures visibles. Une galerie peut continuer à diffuser des dérivés mis en cache après la perte d’un original, et un original sain peut rester invisible lorsque son pipeline d’aperçus échoue. La distinction entre originaux et dérivés régénérables fait du contrôle direct des fichiers le premier point de sécurité.

Si les hachages changent ou si les lectures échouent, mettez en pause l’importation, le nettoyage et la régénération des dérivés. Restaurez le stockage défaillant ou créez-en une image avant de modifier les enregistrements de la base de données. L’étape est validée lorsque les originaux requis sont lisibles et que chaque différence inexpliquée a un responsable, une raison et une action de récupération.

Rapprocher les enregistrements, les chemins et les tâches de dérivés

Comparez dans les deux sens les enregistrements d’éléments de la base de données avec les chemins du système de fichiers : enregistrements sans fichiers et fichiers sans enregistrements. Vérifiez l’UID et le GID, les montages liés, les racines des bibliothèques externes, la sensibilité à la casse et les répertoires renommés avant de déclarer des éléments manquants. Conservez les listes d’éléments orphelins au lieu de supprimer automatiquement l’un ou l’autre côté.

Échantillonnez ensuite les tâches de génération de miniatures et d’aperçus, de transcodage, d’extraction des métadonnées et d’apprentissage automatique. Un article indépendant de dépannage consacré aux originaux intacts avec des dérivés défaillants montre comment des téléversements intacts peuvent coexister avec des vignettes grises lorsque le stockage, les processus ou les chemins de dérivés échouent.

Ne régénérez qu’un seul dérivé témoin après avoir confirmé la correspondance entre l’original et la ligne de la base de données. La réussite se traduit par un nouvel aperçu avec le propriétaire, le chemin et la réponse client attendus ; en cas d’échec, limitez l’analyse aux journaux des processus, au décodeur, au stockage de sortie ou à l’état de la file d’attente. Ne lancez jamais une reconstruction de toute la bibliothèque avant que cet élément témoin reste correct après un redémarrage.

Restaurer la bibliothèque complète dans une cible isolée

Restaurez les originaux, la base de données, la configuration, les secrets et les fichiers annexes requis dans un environnement jetable utilisant des ports et des chemins différents. Démarrez les dépendances dans l’ordre, vérifiez les utilisateurs et les albums, puis n’autorisez que les tâches de dérivés nécessaires pour l’ensemble d’échantillons. Ne dirigez pas l’instance de test vers un stockage de production accessible en écriture.

Testez la connexion, la frise chronologique, la recherche, l’appartenance aux albums, le téléchargement des octets originaux, une modification, un partage et la lecture d’une vidéo. Comparez les hachages des fichiers téléchargés au manifeste et vérifiez qu’un deuxième redémarrage ne fait pas disparaître les correspondances de chemins ni ne recrée l’état requis avec le mauvais propriétaire.

Ne déclarez l’intégrité prouvée que lorsque la bibliothèque active et la restauration isolée concordent sur l’état requis et que les dérivés témoins sont reconstruits à partir des originaux. Faites remonter les incohérences entre la base de données et les fichiers, l’augmentation des erreurs de somme de contrôle ou les tâches qui modifient les originaux ; conservez les manifestes et les journaux afin que la réparation ne se transforme pas en réimportation non documentée.

Assistance et conseils

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.