Create roadmap-image-dedup.md
This commit is contained in:
parent
d6ab09226a
commit
759a313f31
1 changed files with 37 additions and 0 deletions
37
docs/roadmap-image-dedup.md
Normal file
37
docs/roadmap-image-dedup.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue