Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: Problem Dateiverwaltung/Synchronisierung - Neuaufbau der Tabelle tl_files

  1. #1
    Contao-Nutzer
    Registriert seit
    31.05.2012.
    Beiträge
    31

    Standard Problem Dateiverwaltung/Synchronisierung - Neuaufbau der Tabelle tl_files

    Hallo,

    (Problem: )
    Nachdem der Upload von Dateien per FTP und anschließendes Synchronisieren nur zu Fehlermeldungen führte (wohl wg. Sonderzeichen), habe ich knapp 60 Ordner mit der Dateiverwaltung angelegt und auch die Dateien damit hochgeladen/zugeordnet.

    Bei der nächsten Synchronisation (notwendig durch eine große Datei, die dann doch per FTP hochgeladen werden musste) kam es zu Fehlermeldungen folgender Art:
    Code:
    Fatal error: Uncaught exception Exception with message Query error: Duplicate entry 'files/xxxxxxxxxxx/xxxxxxxxxxxxx/xxxxxxxxxxxxx/XXXX-Pro' for key 'path' (INSERT INTO tl_files (pid, tstamp, name, type, path, extension, hash, found) VALUES ('270', 1363702626, 'Vortrag zur Xxxxxxxxxxxxx-Xxxxxxxxxxxxx Xxxxxxxxxxxxx und Xxxxxxxxxxxxx Gesellschaft bei der Xxxxxxxxxxxxx-Xxxxxxxveranstaltung in Xxxxxxxxxxxxx (Stand xxxxxxxxxxxx).pdf', 'file', ...
    Ursache waren m.E. insbes. "lange Bindestriche" (wohl aus Word heraus in den Dateinamen kopiert), die von der Dateiverwaltung aber akzeptiert worden waren. Jedenfalls änderten sich die Fehlermeldungen bezogen auf die Dateinamen, wenn ich diese Sonderzeichen per FTP änderte und danach neu synchronisierte. (Passt ggf. nicht ganz zur Fehlermeldung "Duplicate entry"...)

    Da nach etlichen Korrekturen die Fehlermeldungen weiter kamen, habe ich (verzweifelt) folgendes getan.


    ("Lösung:")
    In der Contao Datenbank eine Sicherheitskopie von der Tabelle tl_files angelegt und diese dann geleert. Anschließend eine Synchronisation mit der Dateiverwaltung ausgeführt, die (für mich unverständlicherweise) dann fehlerfrei durchlief.
    Danach den drei (von später 60) "Downloads-Elementen" wieder die richtigen Verzeichnisse zugeordnet sowie den Benutzern die entspr. Verzeichnisse zurückgegeben ...


    (eigentliche Fragen: )
    1. Kann ich dabei mehr Schaden anrichten, als die danach falsche Zuordnung von Download-Elementen und Benutzer-Filemounts?
    2. Folgende Idee kam mir noch: Meine Downloads-Elemente verweisen nur auf Verzeichnisse. Wenn wieder diese Probleme auftreten, müsste es doch gehen, nur die Einträge in tl_files zu löschen, die als type "file" haben und die mit "folder" zu belassen und dann zu synchronisieren ...?

    Gruß

    McS

  2. #2
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    200

    Standard

    Hallo McS

    ich hatte heute genau das gleiche Problem wie Du.
    Mir sind auch die gleichen Lösungsmöglichkeiten über das Löschen
    der tl_files Tabelle eingefallen, mit den damit verbundenen Arbeiten.

    Ich habe dann aber noch folgendes probiert und zwar habe ich die Datentabelle
    wieder eingespielt und danach wieder synchronisiert, da mir aufgefallen ist,
    dass sich die IDs jedesmal ändern und Contao dann "weiterspringt".

    Das kann bei vielen Files allerdings etwas zermürbend sein ;-)
    Irgendwann ist dann die Synchronisation durchgelaufen, ohne Fehler.

    Was uns danach allerdings aufgefallen ist, ist die Tatsache, dass in einem Modul von
    uns plötzlich bei der Dateiauswahl und dem öffnenden modalen Fenster plötzlich die meisten
    Verzeichnisse nicht mehr angezeigt wurden bzw. bei manchen Verzeichnissen einfach die
    Unterverzeichnisse weg waren.

    Woran das liegt konnten wir noch nicht herausfinden...
    Tja, morgen dann vielleicht ;-)

    Irgendwas ist da noch im Argen mit der Dateiverwaltung befürchte ich...

    Beste Grüsse
    Sares

  3. #3
    Contao-Nutzer
    Registriert seit
    31.05.2012.
    Beiträge
    31

    Standard

    Hallo Sares,

    Zitat Zitat von Sares Beitrag anzeigen
    ... und zwar habe ich die Datentabelle wieder eingespielt und danach wieder synchronisiert
    Welche Tabelle meinst Du mit "Datentabelle"?


    Ansonsten vermute ich schon eine Nebenwirkung zu meinem Vorgehen: die Reihenfolge der Dateien ("Individuelle Sortierung") dürfte verloren gehen ...

    Gruß

    McS
    Geändert von McS (20.03.2013 um 10:50 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    200

    Standard

    Zitat Zitat von McS Beitrag anzeigen
    Welche Tabelle meinst Du mit "Datentabelle"?
    Ich meinte auch die tl_files Tabelle.

    Bis jetzt konnten wir aber noch nicht rausfinden,
    warum im Dateiauswahl Fenster dann die halben
    Verzeichnisse fehlen. An den Benutzer- / Verzeichnisrechten
    liegt es wohl nicht, die beiden Testaccounts sind beide
    Admin Accounts. Seltsam...

    Beste Grüsse
    Sares

  5. #5
    Contao-Nutzer
    Registriert seit
    31.05.2012.
    Beiträge
    31

    Standard

    Sind Sonderzeichen (ggf. auch unsichtbare) in den Verzeichnisnamen? Ich konnte einige Probleme mit Dateien/Verz. beheben, in dem ich den Namen (per FTP) manuell neu eingegeben habe [A-Za-z0-9] und Leerzeichen. Danach kam ich mit der Synchronisierung wieder ein Stück weiter. (Konkret wurde ein + und Foldersymbol angezeigt, darunter waren auch Dateien, der Verz.name fehlte aber. Nach der o.g. Umbenennung und Synchr. wurde der Name dann angezeigt.)

    Nachtrag: Kann auch an der Pfadlänge (incl. Dateiname) liegen: Im Backend in der Dateiverwaltung wird es richtig angezeigt (scheinbar direkt aus dem Filesystem ausgelesen), in der Datenbank (tl_files > path) ist nach der 255ste Stelle abgeschnitten. Im Frontend wird dann die Datei nicht angezeigt ... (im Backend ist dann bspw. beim Inhaltselement Downloads ein filesize stat filed - Fehler eingeblendet)
    Geändert von McS (22.03.2013 um 09:44 Uhr)

  6. #6
    Contao-Nutzer
    Registriert seit
    31.05.2012.
    Beiträge
    31

    Standard

    Verzweiflung: schon wieder " Duplicate entry"-Fehler nach Synchronisation, obwohl nun alles mit Contao hochgeladen und verwaltet war und schon mehrere (Test-)Synchronisationen fehlerfrei liefen!

    Nachtrag: jedenfalls funktioniert die o.g. "Lösung" (in meinem Fall) nur die "files" aus der tl_files zu löschen und dann zu synchronisieren. Und ja, die Dateisortierungen sind weg.



    Nachtrag:
    Spalte "path" ist UNIQUE in der DB. Kann es sein, dass dabei nur eine begrenzte Anzahl von Zeichen berücksichtigt wird? Ich habe zwei Fehlermeldungen zu unterschiedlichen Dateien mit dem selben Pfadanfang bis zur 75sten Stelle.
    Geändert von McS (20.03.2013 um 14:53 Uhr)

  7. #7
    Contao-Nutzer
    Registriert seit
    31.05.2012.
    Beiträge
    31

    Standard

    Zusammenfassung vorläufige Lösung von Problemen mit Dateiverwaltung/Synchronisierung
    (mein Fall: sehr lange Pfade; für Downloads wird auf Verzeichnisse, nicht auf einzelne Dateien verwiesen; ggf. Sonderzeichen in Datei-/Verzeichnamen (z.T. per FTP hochgeladen))

    Contaoversion 3.0.5 / 3.0.6 und auf eigene Gefahr

    - Tabelle tl_files sichern
    - path auf varchar(330) erhöhen
    - name auf varchar(255) erhöhen

    - benötigte Verzeichnisstruktur manuell im Backend mit der Dateiverwaltung anlegen
    - dadurch ist gewährleistet, das die Ordner Contao-konform angelegt werden
    - wichtig, da diese im folgenden immer erhalten bleiben müssen, sonst muss man viel korrigieren

    - Dateien am besten mit der Dateiverwaltung in die Ordner hochladen
    - Dateinamen können mehr als 64 Zeichen haben, besser dabei Sonderzeichen vermeiden
    - bei einer späteren Umbenennung mit der Dateiverwaltung kommt keine Warnung (mehr), wenn mehr als 64 Zeichen verwendet werden (durch die Anpassung der Tabelle tl_files), das Feld nimmt aber nicht mehr als 64 Zeichen an (maxlength="64"). (Ich hätte gern noch einen Hinweis, wo man das anpassen kann...)


    wenn eine Synchronisierung notwendig wird und Fehler auftreten:
    - in tl_files die Einträge mit type = "file" löschen

    - Synchronisation sollte nun fehlerfrei durchlaufen (sogar mehrmals, vorher ging immer nur das erste Mal)

    - eine mögl. "individuelle Reihenfolge" bei Downloads geht durch das Vorgehen verloren
    - wenn Dateinamen mit "1_...", "2_..." etc. am Anfang benannt sind, kann die Reihenfolge mit dem Dateinamen beeinflusst werden, in 3.0.5/3.0.6 wird dieser Teil ("1_") nicht im Frontend angezeigt
    Geändert von McS (22.03.2013 um 09:39 Uhr)

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
  •