Une photothèque se consolide en déplaçant des fichiers d’un disque à l’autre. C’est aussi le moment où on risque de les perdre : un câble qui se débranche, un disque plein, un fichier réécrit par un autre logiciel pendant la copie. Obscura Trace traite ce moment comme un logiciel de sauvegarde le ferait. Il ne déplace jamais un fichier : il le copie, vérifie la copie, et ne retire la source qu’ensuite.
Rien ne s’exécute sans plan
Avant toute écriture, le Centre de transfert calcule la liste exacte des opérations. Une simulation se lit sans rien écrire. Un plan réel est ensuite comparé à cette simulation. Une simulation ne s’exécute jamais. L’exécution n’est atteignable que depuis la confirmation d’un plan réel, qui reprend tout le plan.
Quand un fichier du même nom existe déjà à la destination, la stratégie par défaut est « Comparer ». Un contenu identique est ignoré, un contenu différent va en revue. Rien n’est jamais écrasé en silence.
Pour chaque fichier, quatre temps
Pendant l’exécution, l’application, pour chaque fichier :
- écrit la copie sous un nom temporaire,
.obscura-part, sur le disque de destination ; - calcule l’empreinte SHA-256 des octets lus pendant la copie, puis relit la copie sur le disque pour la vérifier ;
- ne donne son nom final à la copie qu’une fois vérifiée, sans jamais écraser un fichier apparu entre-temps ;
- pour un déplacement, ne retire la source qu’après vérification de toutes les copies de son unité. Un RAW n’est jamais séparé de son XMP.
Chaque étape est inscrite au journal avant d’être effectuée. Si le Mac s’éteint au milieu, le journal dit exactement quelle opération était ouverte.
Une source n’est retirée que si elle n’a pas changé
Entre la copie et le retrait, un logiciel peut avoir réécrit un tag dans la source, ou la copie peut avoir disparu de la destination. Dans ces deux cas, la source reste en place. L’Activité le signale (« source(s) conservée(s) : retrait refusé ») et le transfert continue avec les fichiers suivants.
La source doit être encore celle qui a été copiée : même taille, même date de modification, même fichier sur le même disque. Avant une suppression définitive, elle est en plus relue en entier et comparée à l’empreinte de sa copie.
Avant la première écriture, l’application vérifie aussi que le disque monté à la destination est celui du plan, reconnu par son identifiant de volume, et pas seulement un disque du même nom. Sinon le transfert s’arrête sans rien écrire.
La Corbeille par défaut
Les sources d’un déplacement vont à la Corbeille de leur disque, que l’application ne vide jamais. La suppression définitive est désactivée par défaut. Pour l’utiliser, il faut l’activer dans les Réglages, puis y consentir pour chaque transfert, en cochant « Je reconnais que cette opération est irréversible. ».
Interrompu, il se reprend
Un disque plein ou débranché arrête le transfert proprement. Rien ne reprend sans vous. La reprise lit le journal, défait l’opération restée ouverte en retirant sa copie partielle, puis relance le plan. Ce qui est déjà copié et vérifié n’est pas recopié.
Après un arrêt brutal, le Tableau de bord signale le transfert « à reprendre » dès le lancement suivant.
Ce que ça ne fait pas
Un transfert n’a ni pause ni annulation dans la version actuelle : interrompu, il se reprend. Quitter l’application pendant un transfert demande confirmation. La vérification ajoute aussi un coût : relire chaque copie prend du temps, et c’est voulu. Sur une archive irremplaçable, une copie plus lente vaut mieux qu’une perte silencieuse.
Le détail, écran par écran, est au chapitre Centre de transfert du guide.