Create roadmap-image-dedup.md

This commit is contained in:
Oliver 2025-08-17 17:54:09 +02:00 committed by GitHub
parent d6ab09226a
commit 759a313f31
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,37 @@
# Roadmap: Bild-Deduplizierung & Medien-Hygiene
## Ziele
- Speicherverbrauch reduzieren
- Medienbestand konsistent halten
- Pipeline stabilisieren (keine Mehrfach-Uploads und -Speicherungen)
## Vorgehen (sicher und reversibel)
1. **Index aufbauen (Read-Only):**
- Alle Bilder (`.jpg/.jpeg/.png/.webp/.gif`) in definierten Verzeichnissen scannen
- Für jede Datei: `sha256` (Byte-Hash) + `pHash` (perzeptuell) berechnen
- Ergebnis als SQLite-Index + CSV-Report speichern
2. **Kanonisierung & Referenzen prüfen:**
- Pro Duplikatgruppe genau **eine** kanonische Datei wählen (größte/neueste)
- Alle internen Referenzen (DB/JSON) testweise auf Kanon aktualisieren (Dry-Run)
3. **Speicher sparen ohne Risiko:**
- Nicht-kanonische Dateien durch **Hardlinks** auf den Kanon ersetzen (gleiches FS)
- Alternativ: nur löschen, wenn Referenzen **sicher** auf Kanon zeigen
4. **Prävention für die Zukunft:**
- Beim Speichern: **Content-Addressed Storage** (`<sha256>.<ext>`)
- In DB ein `content_hash`-Feld mit **Unique-Constraint**
- Vor jedem Speichern/Upload: Hash lookup → vorhandene Datei wiederverwenden
## Akzeptanzkriterien
- Report listet alle Duplikatgruppen mit Pfaden und Größenersparnis
- Dry-Run zeigt geplante Änderungen ohne Schreibzugriff
- Nach „Anwenden“ verweisen alle Referenzen auf die kanonische Datei
- Re-Run findet **keine** Duplikate mehr (idempotent)
- Rollback möglich via Backup der Reports/Indexdatei
## Metriken
- Anzahl Bilder vorher/nachher
- Ersparter Speicher (MB/GB)
- Anzahl gruppierter Duplikate