mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 16:24:33 +00:00
140 lines
7.0 KiB
Markdown
140 lines
7.0 KiB
Markdown
# Aktueller Entwicklungsstand
|
||
|
||
Stand: 19.08.2026
|
||
|
||
## Plugin
|
||
|
||
- Aktuelle Plugin-Version: **0.9.6.1**
|
||
- Aktueller Entwicklungsblock: **NC Connector – WebDAV-End-to-End-Pfad mit Piwigo-Registrierung, Preview-/Derivatstrecke und sauberem Verbindungs-Lebenszyklus**
|
||
- GitHub ist das führende Repository.
|
||
- Der bestehende lokale Connector bleibt vollständig erhalten und wird nicht automatisch migriert.
|
||
|
||
## Nicht verhandelbare Architekturregeln
|
||
|
||
- Nextcloud bleibt die Quelle der Originalbilder.
|
||
- Originalbilder werden **nicht dauerhaft nach Piwigo kopiert**.
|
||
- Der bestehende lokale Produktionsweg bleibt funktionsfähig.
|
||
- WebDAV benötigt nur Nextcloud-Adresse, Benutzer/App-Passwort und normale WebDAV-Berechtigungen des Benutzers.
|
||
- Kein Nextcloud-PostgreSQL-Zugriff, kein `occ`, keine Storage-IDs, keine Host-Mounts, kein FUSE, davfs oder rclone als Voraussetzung.
|
||
- WebDAV-Verbindungen werden voneinander isoliert verarbeitet.
|
||
- Fehler der WebDAV-Bildverarbeitung dürfen keinen normalen Piwigo-Seitenaufruf zum Absturz bringen.
|
||
|
||
## Bestehende Quellenmodi
|
||
|
||
Weiterhin vorhanden:
|
||
|
||
- `legacy-view`
|
||
- `user-shares`
|
||
- `selected-fileids`
|
||
|
||
Neuer WebDAV-Modus:
|
||
|
||
- `webdav-placeholder`
|
||
|
||
Es gibt keine automatische Migration bestehender Verbindungen auf WebDAV.
|
||
|
||
## WebDAV-Ablauf in 0.9.6.1
|
||
|
||
1. Der Assistent prüft Nextcloud über WebDAV und lässt sichtbare Verzeichnisse auswählen.
|
||
2. `runtime/reconcile-webdav.php` erzeugt die verbindungseigene Runtime-Konfiguration.
|
||
3. `runtime/lib/build_webdav_placeholder_source.py` liest die ausgewählten Verzeichnisse rekursiv per PROPFIND.
|
||
4. Ordner, Dateinamen, Nextcloud-Datei-ID, MIME-Typ, Größe, ETag und WebDAV-Pfad werden erfasst.
|
||
5. Eine lokale Platzhalterquelle wird erzeugt, ohne Originalbilder dauerhaft zu speichern.
|
||
6. `runtime/lib/shadow_tree.py` baut daraus den verbindungseigenen Shadow Tree.
|
||
7. Der WebDAV-Galeriebaum liegt unter `_data/bratonien-tools/nc-webdav-gallery/connection-ID` und wird als eigene physische Piwigo-Site registriert.
|
||
8. Dadurch erscheint die ausgewählte Nextcloud-Wurzel als normales Piwigo-Album; technische `bratonien-webdav-ID`-Wrapper werden nicht angezeigt.
|
||
9. Vorbereitete Arbeitsbilder liegen unter `_data/bratonien-tools/nc-webdav-preview/connection-ID`.
|
||
10. Arbeitsbilder werden als JPEG beziehungsweise PNG erzeugt und maximal auf 4096 px Kantenlänge begrenzt, damit Piwigos Bildbibliothek sie zuverlässig verarbeiten kann.
|
||
11. Der CLI-Derivat-Builder korrigiert die Piwigo-Bildabmessungen anhand des Arbeitsbilds und erzeugt die aktuell konfigurierten Standard- und Custom-Derivate.
|
||
12. Der normale Frontend-Aufruf erzeugt **keine** Derivate. Fehlt ein Derivat, wird das vorbereitete Bild als sicherer Fallback ausgeliefert.
|
||
13. Originalbilder werden bei echtem Originalabruf serverseitig über `webdav-image.php` aus Nextcloud gestreamt; Nextcloud-Zugangsdaten erscheinen nicht im Browser.
|
||
|
||
## Piwigo-Synchronisierung
|
||
|
||
WebDAV verwendet denselben Piwigo-Synchronisationspfad wie der bestehende Connector, aber mit einer verbindungseigenen physischen Site.
|
||
|
||
Nach der Dateisynchronisierung laufen die vorhandenen Piwigo-Nacharbeiten, darunter Metadaten-, Integritäts-, Kategorie-, Pfad-, Rang- und Cache-Aktualisierungen sowie der Orphan-Abgleich.
|
||
|
||
Die direkte produktive Synchronisierung ist derzeit ausdrücklich auf **Piwigo 16.4.0** abgestimmt.
|
||
|
||
## WebDAV-Bildausgabe und Derivate
|
||
|
||
Wichtige Dateien:
|
||
|
||
- `include/webdav_image_runtime.inc.php` – Zuordnung Piwigo-Bild ↔ WebDAV-Quelle, Preview-/Derivat-Helfer und URL-Filter.
|
||
- `webdav-image.php` – berechtigungsgeprüfter serverseitiger Original-/Preview-Abruf.
|
||
- `runtime/lib/precache-webdav-previews.php` – vorbereitete JPEG-/PNG-Arbeitsbilder ohne dauerhafte Originalkopie.
|
||
- `runtime/lib/build-webdav-derivatives.php` – CLI-Aufbau der konfigurierten Piwigo-Derivate.
|
||
|
||
Der Frontend-Hook führt keine Bildgenerierung mehr aus. Damit bleibt ein Fehler in GD/Imagick/External ImageMagick auf den Hintergrundlauf begrenzt.
|
||
|
||
## Löschen einer WebDAV-Verbindung seit 0.9.6.1
|
||
|
||
Eine gelöschte WebDAV-Verbindung darf keine weiterhin sichtbaren oder über alte Piwigo-Datensätze erreichbaren Bilder hinterlassen.
|
||
|
||
Beim Löschen über die Oberfläche:
|
||
|
||
- werden die zur Verbindung gehörende Piwigo-Site, ihre Alben und Bilddatensätze entfernt;
|
||
- werden zugehörige Piwigo-Derivate entfernt;
|
||
- bleiben die Nextcloud-Originaldateien unangetastet;
|
||
- werden Laufzeit- und Preview-Daten anschließend bereinigt.
|
||
|
||
Zusätzlich läuft `runtime/cleanup-webdav-piwigo.php` im gemeinsamen Runner. Er erkennt verwaiste WebDAV-Piwigo-Sites, für die keine Connector-Verbindung mehr existiert, und entfernt deren Piwigo-Inhalte sowie Gallery-, Source-, Preview-, State-, Status- und Runtime-Reste. Damit werden auch bereits vor 0.9.6.1 gelöschte Verbindungen nachträglich bereinigt.
|
||
|
||
## Gemeinsamer Runner
|
||
|
||
`runtime/run-all.sh` verarbeitet die Schritte in kontrollierter Reihenfolge:
|
||
|
||
1. lokale Verbindungen reconciliieren;
|
||
2. WebDAV-Verbindungen reconciliieren;
|
||
3. verwaiste WebDAV-Piwigo-Inhalte bereinigen;
|
||
4. verwaiste allgemeine Runtime-Dateien bereinigen;
|
||
5. aktive WebDAV-Verbindungen synchronisieren;
|
||
6. aktive lokale Verbindungen synchronisieren.
|
||
|
||
Der vorhandene systemd-Timer ruft direkt die Runtime aus dem installierten Plugin auf.
|
||
|
||
## Status- und UI-Regeln
|
||
|
||
- Hintergrund-Polling lädt die Admin-Seite nicht neu.
|
||
- Ein geöffneter Verbindungsassistent bleibt bei Statusaktualisierungen geöffnet.
|
||
- Fehlgeschlagene Fallback-/Credential-Prüfungen schließen den Assistenten nicht.
|
||
- Laufzeitfehler unterscheiden WebDAV-Lesen, Piwigo-Synchronisierung, Preview- und Derivatfehler.
|
||
|
||
## Sicherheit
|
||
|
||
- Connector-Zugangsdaten werden verschlüsselt gespeichert.
|
||
- WebDAV-Credentials werden nur serverseitig verwendet.
|
||
- Bildzugriffe über `webdav-image.php` werden gegen Piwigos Zugriffsrechte geprüft.
|
||
- Nextcloud-Originale werden weder beim Sync noch beim Löschen einer Verbindung verändert.
|
||
- Derivate und Arbeitsbilder sind lokale Cache-/Arbeitsdaten und dürfen entfernt beziehungsweise neu aufgebaut werden.
|
||
|
||
## Aktueller Prüfstand
|
||
|
||
Bereits umgesetzt:
|
||
|
||
- WebDAV-Verbindungsassistent;
|
||
- Verzeichnisauswahl;
|
||
- rekursiver WebDAV-Scan;
|
||
- Shadow Tree;
|
||
- separate Piwigo-Site je WebDAV-Verbindung;
|
||
- sichtbare Albumstruktur ohne technische Wrapper;
|
||
- echte Bildausgabe aus Nextcloud;
|
||
- lokale vorbereitete Arbeitsbilder;
|
||
- CLI-Derivatstrecke;
|
||
- Piwigo-Nacharbeiten und Orphan-Abgleich;
|
||
- ETag-basierte Wiederverwendung vorbereiteter Bilder;
|
||
- Löschen einer Verbindung einschließlich Piwigo-Inhalten;
|
||
- nachträgliche Bereinigung bereits verwaister WebDAV-Piwigo-Sites.
|
||
|
||
Weiter zu prüfen beziehungsweise unter realer Last zu härten:
|
||
|
||
- vollständiger Derivataufbau für alle in der Installation vorkommenden Standard- und Custom-Größen;
|
||
- Verhalten bei großen Bildmengen und vielen gleichzeitig noch nicht vorbereiteten Bildern;
|
||
- Fehlerfälle verschiedener Bildformate und Bild-Backends;
|
||
- langfristige Änderungserkennung und Performance im produktiven Einsatz.
|
||
|
||
## Versionsregel
|
||
|
||
Die aktuelle Versionslinie ist **0.9.6.x**. Weitere Sprünge auf eine neue Minor-/Major-Linie erfolgen nur bewusst und ausdrücklich.
|