Zapobiegaj duplikatom zdjęć, najpierw importując jeden kanoniczny eksport, a następnie włączając kopię zapasową telefonu dopiero po sklasyfikowaniu identycznych kopii i zmodyfikowanych wariantów.
Migracje bibliotek w chmurze często obejmują oryginały, zmodyfikowane kopie, pomniejszone pliki pobrane z chmury, wersje z albumów udostępnionych, komponenty Live Photo, dodatkowe pliki z metadanymi oraz wielokrotnie eksportowane foldery. Galeria hostowana samodzielnie może odrzucać duplikaty identyczne na poziomie bajtów, ale nadal akceptować wizualnie identyczne pliki, które różnią się kompresją, wymiarami, metadanymi lub nazwami. Bezpieczny proces polega na przeprowadzeniu migracji poza aktywną biblioteką, zapisaniu skrótów i folderów źródłowych, zaimportowaniu jednej kontrolowanej partii oraz sprawdzeniu, jak galeria przedstawia warianty, zanim rozpocznie się automatyczna kopia zapasowa telefonu.
Zinwentaryzuj każde źródło, które może zawierać to samo zdjęcie
Wymień archiwa eksportu z chmury, rolkę aparatu w telefonie, bibliotekę zdjęć na komputerze, albumy udostępnione, foldery pobierania, biblioteki partnerów, stare foldery NAS oraz wszystkie zewnętrzne biblioteki podłączone do galerii. Zapisz zakres dat i liczbę plików dla każdego źródła.
Duplikaty często powstają po zaimportowaniu kopii z chmury, a następnie włączeniu przesyłania lokalnego oryginału z telefonu. W dyskusji dotyczącej Immich opisano, że Zdjęcia Google i kopia zapasowa z urządzenia mobilnego tworzyły pozorne duplikaty, ponieważ wersja z chmury była skompresowana, a telefon dostarczał inny plik w pełnej rozdzielczości.
Wybierz źródło, które będzie nadrzędne dla oryginałów. Pozostałe pozostaw w trybie offline podczas pierwszego importu, aby o tym, co usunąć, nie decydować na podstawie osi czasu wypełnionej duplikatami.
Oddziel duplikaty identyczne na poziomie bajtów od wariantów wizualnych
Przed importem wygeneruj kryptograficzne skróty plików. Zgodne skróty oznaczają identyczne bajty, natomiast różne skróty mogą wskazywać na zmiany, ponowną kompresję, modyfikacje metadanych, pomniejszone eksporty, komponenty zdjęć ruchomych lub rzeczywiście różne ujęcia.
Użytkownicy migrujący do Immich tworzyli kontrole skrótów przed importem, ponieważ transfery z bibliotek zewnętrznych mogą nie wykonywać takiego samego sprawdzania duplikatów jak przesyłanie przez API. Zgłoszona metoda polegała na porównaniu skrótów przed kopiowaniem.
Nie usuwaj automatycznie plików tylko dlatego, że wyglądają podobnie na miniaturze. Zachowaj oryginał w wyższej rozdzielczości, zamierzoną wersję edytowaną, komponenty zdjęć ruchomych oraz dodatkowe pliki z metadanymi, dopóki nie zostaną porównane poza galerią.
Ujednolić strukturę folderów eksportu bez modyfikowania oryginałów
Rozpakuj każde archiwum z chmury do katalogu przejściowego i zidentyfikuj powtarzające się części archiwów, przyrostki „original” i „edited”, dodatkowe pliki JSON, duplikaty albumów oraz pliki podzielone między pakiety eksportu.
Podczas pierwszej inwentaryzacji zachowaj niezmienione nazwy plików i znaczniki czasu. Zmiana nazw, ponowne kodowanie lub ponowny zapis metadanych przed obliczeniem skrótów może zmienić identyczne duplikaty w pliki różniące się bajtami, których galeria nie będzie już w stanie automatycznie rozpoznać.
Utwórz manifest zawierający archiwum źródłowe, pierwotną ścieżkę względną, nazwę pliku, skrót, rozmiar, wymiary, czas wykonania zdjęcia oraz ścieżkę do dodatkowego pliku z metadanymi. Dzięki temu każde późniejsze usunięcie będzie można cofnąć, a także wyjaśnić, dlaczego dwa podobne zasoby trafiły do biblioteki.
Najpierw zaimportuj małą, reprezentatywną partię
Wybierz partię zawierającą zwykły plik JPEG, zdjęcie HEIC, obraz po edycji, Live Photo, film, serię zdjęć, kopię z albumu udostępnionego oraz dwa identyczne duplikaty. Zaimportuj ją tą samą metodą, którą planujesz wykorzystać dla całej biblioteki.
Zasoby z chmury i urządzenia lokalnego mogą pojawić się dwukrotnie na mobilnej osi czasu, nawet jeśli jeden reprezentuje kopię na serwerze, a drugi nadal znajduje się tylko w telefonie. W zgłoszeniu dotyczącym Immich opisano zdjęcia wyświetlane jednocześnie w stanie z chmury i poza chmurą.
Sprawdź, czy galeria odrzuca pliki o identycznych skrótach, grupuje komponenty zdjęć ruchomych, zachowuje edycje, odczytuje dodatkowe pliki z metadanymi oraz rozróżnia zasoby dostępne tylko lokalnie od przesłanych. Zmień sposób importu przed rozpoczęciem importowania całego eksportu.
Nie włączaj kopii zapasowej telefonu, dopóki import historyczny nie będzie stabilny
Wstrzymaj automatyczną kopię zapasową na każdym telefonie zawierającym część migrowanej biblioteki w chmurze. W przeciwnym razie klient mobilny może przesłać tysiące zasobów, podczas gdy serwer będzie nadal wczytywał tę samą historię z wyeksportowanych plików.
Duplikaty między źródłami mogą pojawić się ponownie, gdy użytkownik zachowa kopię w bibliotece zewnętrznej, ale usunie przesłany plik, ponieważ klient mobilny może później ponownie przesłać ten sam zasób. W dyskusji dotyczącej Immich opisano powtarzającą się pętlę duplikatów między telefonem a biblioteką zewnętrzną.
Po zakończeniu importu historycznego porównaj liczbę oczekujących plików w telefonie z manifestem serwera. Najpierw włącz kopię zapasową dla małego, niedawnego albumu i potwierdź, że znane zasoby historyczne są pomijane lub oznaczane jako już zabezpieczone.
Świadomie zarządzaj bibliotekami zewnętrznymi i przesłanymi
Zdecyduj, czy zmigrowane pliki będą przechowywane jako zasoby zarządzane przez galerię, czy jako zewnętrzna biblioteka tylko do odczytu. Nie prezentuj tych samych fizycznych plików w obu ścieżkach.
Przeniesienie zasobów z biblioteki zarządzanej do biblioteki zewnętrznej może utworzyć zduplikowane wpisy na osi czasu, gdy stary rekord w bazie danych pozostanie, a nowe skanowanie zewnętrzne doda kolejny zasób. Zgłoszonym rezultatem był osierocony rekord oraz nowy duplikat.
Stosuj jeden model własności dla każdego zestawu plików. Jeśli zmieniasz model, wykonaj kopię zapasową bazy danych, przeprowadź obsługiwane usunięcie lub czyszczenie starej ścieżki i sprawdź, czy nieaktualne rekordy zniknęły, zanim przeskanujesz nową lokalizację.
Przeglądaj duplikaty z uwzględnieniem metadanych i możliwości odzyskania
Gdy galeria wykryje duplikaty, przed wyborem zasobu do zachowania porównaj rozdzielczość, rozmiar pliku, kodek, czas wykonania zdjęcia, historię edycji, powiązanie z Live Photo, przynależność do albumów, ulubione, przypisania twarzy oraz źródło kopii zapasowej.
Wykrywanie podobnych plików może identyfikować różne rozdzielczości lub kodowania tej samej sceny, ale nie jest w stanie określić, która wersja zachowuje preferowaną przez użytkownika edycję lub oryginał najwyższej jakości. Traktuj automatyczne wykrywanie jako kolejkę do przeglądu, a nie polecenie usunięcia.
Przewodnik ZimaSpace dotyczący migracji danych NAS przedstawia nadrzędną zasadę: zachowaj eksport z chmury i oryginalną bibliotekę do czasu zweryfikowania liczby plików, metadanych, albumów oraz reprezentatywnych operacji przywracania.
Zakończ migrację powtarzalnym audytem
Porównaj manifesty źródłowe, liczbę zaimportowanych plików, odrzucone dokładne duplikaty, zachowane warianty, pliki zakończone niepowodzeniem oraz liczbę oczekujących plików w telefonie. Sprawdź losowo kilka lat, albumów, edycji, filmów i zdjęć Live Photo.
Przechowuj oryginalny eksport z chmury bez zmian i utwórz drugą kopię zapasową biblioteki hostowanej samodzielnie, zanim anulujesz subskrypcję lub usuniesz zasoby z chmury. Czyszczenie duplikatów nie jest kopią zapasową i nigdy nie powinno być jedyną operacją zmieniającą kopie plików.
Migracja jest zakończona, gdy każdy oryginał ma jedną celowo wybraną kopię kanoniczną, zmodyfikowane warianty pozostają rozróżnialne, telefony przesyłają tylko nowe zasoby, biblioteki zewnętrzne i zarządzane nie nakładają się, a manifest wyjaśnia każdy wykluczony lub zachowany duplikat.
Wsparcie i wskazówki
Więcej do przeczytania

Dlaczego przywracanie woluminu Dockera odtwarza zawartość plików, ale usuwa atrybuty rozszerzone?
Diagnoza przywracania woluminu obejmująca inwentaryzację atrybutów xattr, opcje tar i Rsync, przestrzenie nazw, obsługę miejsca docelowego, uprawnienia, etykiety, metadane aplikacji i testy.

Dlaczego uruchomiony kontener zachowuje stary limit pamięci po zmianie pliku Compose?
Diagnoza limitu pamięci obejmująca aktywne grupy cgroup, ponowne uruchamianie w porównaniu z odtwarzaniem, pola Compose, limity twarde i miękkie, zakresy nadrzędne, pamięć wymiany oraz...

Dlaczego ponowne uruchomienie odwrotnego proxy unieważnia każdą sesję w jednej samodzielnie hostowanej aplikacji?
Diagnoza utraty sesji obejmująca zakres restartu, własność plików cookie, rotację sekretów, sesje oparte na pamięci podręcznej, przekierowanie do serwera przyklejonego, bramy uwierzytelniania oraz przywracanie...

