Ergebnis 1 bis 6 von 6

Thema: Umbenannte Ordner synchronisieren führt zu Problemen mit Galerie!?

  1. #1
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.086
    Contao-Projekt unterstützen

    Support Contao

    Standard Umbenannte Ordner synchronisieren führt zu Problemen mit Galerie!?

    Ich bin gerade auf etwas gestossen, was ich mir nicht so ganz erklären kann. Ich habe mehrere Bildergalerien (Contao Core Galerie) mit Bildern in verschiedenen Ordnern. Hierbei sind die anzuzeigenden Bilder jeweils einzeln ausgewählt, liegen aber jeweils alle im selben Ordner. Es werden halt nur nicht alle Bilder aus dem Ordner angezeigt. Die Galerien funktionieren auch problemlos.

    Jetzt wollte ich einen Ordnernamen anpassen (auf Kleinschreibung umstellen) und habe das nebenbei gleich in der Shell erledigt. Die Ordner mit den Bildern für die Galerien liegen zwei Ebenen tiefer in dem umbenannten Ordner. Danach habe ich dann die Dateiverwaltung synchronisiert und mich schon gewundert, dass der umbenannte Ordner nicht als "verschoben" gezählt, wohl aber die Hashes der übergeordneten Ordner "files" und "files/bilder" geändert wurden. Danach hatte das ce_gallery keine ausgewählten Dateien mehr! Ich habe den Ordner dann wiederum in der Shell auf den ursprünglichen Namen zurück umbenannt und wieder die Dateiverwaltung synchronisiert. Danach war wieder alles ok, die gleichen Bilder wieder ausgewählt wie vor der ganzen Aktion.

    Da ich aber trotzdem auf Kleinschreibung umstellen will, habe ich dann den Ordner in der Dateiverwaltung auf Kleinschreibung umbenannt. Und hier hat dann alles funktioniertn wie erwartet, die Galerie wird weiterhin mit den gewünschten Bildern angezeigt.

    Was heißt das jetzt? Dürfen Ordner grundsätzlich nur in der Dateiverwaltung umbenannt werden, wenn man auf seine Bildverweise bei Galerien - und eventuell auch anderswo - Wert legt? Ich bin bisher eigentlich davon ausgegangen, dass für die Bildauswahl in der Galerie sowieso die UUIDs der Bilddateien verwendet werden und somit ein Umbenennen problemlos möglich wäre.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.253
    Partner-ID
    10107

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Was heißt das jetzt? Dürfen Ordner grundsätzlich nur in der Dateiverwaltung umbenannt werden, wenn man auf seine Bildverweise bei Galerien - und eventuell auch anderswo - Wert legt?
    Ja. Der Algorithmus der Dbafs Synchronisation versucht zwar verschobene Dateien automatisch zu erkennen, aber darauf kann man sich nicht verlassen.

    Zitat Zitat von tab Beitrag anzeigen
    Ich bin bisher eigentlich davon ausgegangen, dass für die Bildauswahl in der Galerie sowieso die UUIDs der Bilddateien verwendet werden und somit ein Umbenennen problemlos möglich wäre.
    Dort werden auch die UUIDs gespeichert, aber das hilft ja nicht wenn du den Pfad zur Datei änderst, ohne der Datenbank das mitzuteilen.

  3. #3
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.086
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Pfadänderung wollte ich der DB ja durch das Synchronisieren mitteilen. Offensichtlich hat sie das aber nicht verstanden . Problemlos war bisher eigentlich immer das tatsächliche Verschieben von Dateien in ein anderes Verzeichnis. Vielleicht liegt es hier jetzt daran, dass die Datei ja weiterhin im gleichen Verzeichnis liegt, der Pfad zum Verzeichnis sich also nur beim Namen eines übergeordneten Verzeichnisses geändert hat. Heißt das jetzt, dass durch das Umbenennen sich die UUIDs der Bilddateien geändert haben oder dass das Filesystem dadurch tatsächlich nicht mehr weiss, wo die Datei mit der entsprechenden UUID liegt? Ich tippe auf das Letzere und interpretiere deine Antwort auch so. Die Datei mit der UUID bei der Synchronisierung zu finden und den Pfad entsprechend anzupassen sollte aber doch kein Problem sein?! Oder liegt es daran, dass die übergeordneten Ordner ihre UUIDs ebenfalls nicht geändert haben und das DBAFS dann meint, alles sei schon in Ordnung und deshalb sei nichts zu tun?

    Das mit dem Verzeichnis macht mir eigentlich auch nichts aus, die Änderung direkt in der Dateiverwaltung für die paar Verzeichnisse dauert auch nicht länger, geht sogar eher deutlich schneller, weil die Synchronisierung über eine Minute läuft. Aber das ist nur der Anfang, als nächstes sind die Bilddateien selbst dran mit Umbenennen, da sieht das dann anders aus. Auf der Shell maximal ein Kommando pro Verzeichnis, in der Dateiverwaltung ca 4000 Dateien. Ich teste das erst mal mit einer Datei . Notfalls baue ich mir ein Skript, das direkt die DBAFS-Funktionen benutzt.

  4. #4
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.086
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ich teste das erst mal mit einer Datei . Notfalls baue ich mir ein Skript, das direkt die DBAFS-Funktionen benutzt.
    Ok, funktioniert auch nicht, muss ich wohl Plan B realisieren.

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.253
    Partner-ID
    10107

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Die Pfadänderung wollte ich der DB ja durch das Synchronisieren mitteilen. Offensichtlich hat sie das aber nicht verstanden .
    Wie gesagt, der Algorithmus beim Synchronisieren versucht verschobene Dateien zu erkennen. Aber es gibt keine Garantie dafür, dass das funktioniert. Bzw. funktioniert der Algorithmus evt. generell nicht, wenn man einen Ordner umbenennt.


    Zitat Zitat von tab Beitrag anzeigen
    Heißt das jetzt, dass durch das Umbenennen sich die UUIDs der Bilddateien geändert haben oder dass das Filesystem dadurch tatsächlich nicht mehr weiss, wo die Datei mit der entsprechenden UUID liegt? Ich tippe auf das Letzere und interpretiere deine Antwort auch so. Die Datei mit der UUID bei der Synchronisierung zu finden und den Pfad entsprechend anzupassen sollte aber doch kein Problem sein?! Oder liegt es daran, dass die übergeordneten Ordner ihre UUIDs ebenfalls nicht geändert haben und das DBAFS dann meint, alles sei schon in Ordnung und deshalb sei nichts zu tun?
    Es liegt einfach daran, dass du extern den Pfad zur Datei geändert hast. Dadurch wird schlicht und einfach das Bild nicht mehr auf dem in der Datenbank gespeicherten Pfad mehr gefunden. Bei der Synchronisation wurden dann diese Einträge zu den Dateien gelöscht und die Dateien des neuen Pfades neu hinzugefügt. Diese neuen Dateien haben natürlich auch andere UUIDs.


    Wenn du viele Ordner/Dateien umbenennen willst, machst du das am besten per Script - welches
    1. die Datei umbenennt
    2. und den Datenbankeintrag für die Datei mit dem neuen Pfad und Name aktualisiert

  6. #6
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.086
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wie gesagt, der Algorithmus beim Synchronisieren versucht verschobene Dateien zu erkennen. Aber es gibt keine Garantie dafür, dass das funktioniert. Bzw. funktioniert der Algorithmus evt. generell nicht, wenn man einen Ordner umbenennt.


    Es liegt einfach daran, dass du extern den Pfad zur Datei geändert hast. Dadurch wird schlicht und einfach das Bild nicht mehr auf dem in der Datenbank gespeicherten Pfad mehr gefunden. Bei der Synchronisation wurden dann diese Einträge zu den Dateien gelöscht und die Dateien des neuen Pfades neu hinzugefügt. Diese neuen Dateien haben natürlich auch andere UUIDs.
    Ganz so scheint es mir aber nicht zu sein. Vielmehr hängt es damit zusammen, dass der neue Dateiname nur in Bezug auf Groß-/Kleinschreibung geändert ist. Das Dateisystem bei 1&1 ist case sensitive, der Apache allerdings offenbar nicht, der liefert z.B. direkt aufgerufene Bilddateien unabhängig von der Groß-/Kleinschreibung aus. Aber auch das ist nicht das eigentliche Problem.

    Offenbar macht die Synchronisation in diesem Fall irgendwas anders, als wenn sich der neue Dateiname "wirklich" vom alten unterscheidet. Denn ändere ich den Dateinamen von (z.B) IMG_0001.JPG auf img_0001.JPG, ist das Bild raus aus der Galerie. Die Info zur Datei im Dateimanager zeigt allerdings den neuen Pfad inklusive Namen immer korrekt an (mit der aktuellen Groß-/Kleinschreibung) und zeigt auch das Vorschaubild. Die UUID hat sich nicht geändert laut Info in der Dateiverwaltung, das Bild bleibt trotzdem in der Galerie verschwunden. Nun könnte man vermuten, dass die Datei erst durch den Aufruf der Info synchronisiert wird, aber auch danach bleibt das Bild in der Galerie verschwunden.

    Ändere ich den Dateinamen aber auf z.B. IMG_0001a.JPG und synchronisiere in der Dateiverwaltung, wird das Bild in der Galerie angezeigt. In dem Fall wird auch nach der Synchronisierung angezeigt, dass das "neue" Bild gefunden wurde und danach, dass das "alte" Bild unter dem neuen Pfad gefunden wurde. Im anderen Fall steht da nach der Synchronisierung gar nichts von dem Bild. Irgendwas riecht da m.E. ganz gewaltig nach Bug. Kann ja eigentlich nicht richtig sein, dass es nur genau dann nicht funktioniert, wenn der alte und neue Dateiname bis auf die Groß-/Kleinschreibung identisch ist. Leider habe ich die entsprechende Stelle im Quellcode (noch) nicht gefunden. Sieht aber so aus, als ob irgendeine Prüfung bei der Synchronisierung nicht case sensitive wäre und deshalb davon ausgegangen wird, dass keine Aktion erforderlich sei.

    Zitat Zitat von Spooky Beitrag anzeigen
    Wenn du viele Ordner/Dateien umbenennen willst, machst du das am besten per Script - welches
    1. die Datei umbenennt
    2. und den Datenbankeintrag für die Datei mit dem neuen Pfad und Name aktualisiert
    So werde ich das machen und dabei die Dbafs-Funktion zm Verschieben/Umbenennen dazu verwenden. Denn die funktioniert ja offenbar. Denn wenn ich die Datei in der Dateiverwaltung bearbeite, den Namen auf Kleinschreibung ändere und speichere, dann klappt ja alles.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •