Verzeichnisname zu lang - Synchronisationsfehler

Nein. Dateien im Speicherort des Tresors sollten tunlichst nicht angefasst werden.

Was du tun kannst, ist den Namen der betreffende Datei innerhalb des Tresors zu kürzen. Die betroffene Datei kannst du zum Beispiel anhand der Zeitstempel finden.

Randnotiz: Mit Version 1.5.0 wird nun auch bei jedem neu erstelltem Tresor extra eine Datei in den Speicherort des Tresors gelegt, die ausdrücklich davor warnt irgendetwas in dem Verzeichnissen zu ändern.

Danke für die ausführlicher Erläuterung infeo!

Ich versuche gerade, meine Dateien verschlüsselt in die Cloud zu übertragen - das ist schon ein wenig. Da es immer wieder zu diesem Problem kommt, habe ich das erstmal abgebrochen. Dabei handelt es sich auch um Dateien, die durch andere Programme erzeugt wurden und die ich nicht umbenennen kann/darf.

Was haltet ihr von folgender Idee: Bei der Erstellung eines Tresors kann eine Zahl eingegeben werden (optional), die die maximale Pfadlänge begrenzt. Cryptomator richtet den Tresor danach aus und bringt den Verkürzungsalgorithmus bei den Dateien zur Anwendung, die diese maximale Pfadlänge nach Verschlüsselung überschreiten werden. D.h. die Pfadlänge der verschlüsselten Dateien bleibt immer unterhalb der “zulässigen” Grenze. Gleichzeitig werden nicht mehr Dateien mit dem aufwendigeren Verfahren behandelt als nötig.

Haben wir auch schon überlegt. Ist nicht unmöglich, aber sollte gut durchdacht sein. Das Problem ist hier die Abwärtskompatibilität. Es müsste ein neues Tresorformat definiert werden, um zu verhindern, dass alte Cryptomator-Versionen derartige Tresore zu öffnen versuchen und dann nicht den konfigurierten Schwellwert, sondern einen eigenen annehmen. Letzteres würde zu Dateninkonsistenzen führen, was unbedingt zu vermeiden ist.

Stellt sich die Frage: Wie bestimmt man die geeignete Limit-Länge? Ich habe das Limit unverändert auf 220 gelassen. Probleme gibt es beispielsweise bei einer Datei, deren Pfadlänge im gemappten Verzeichnis 160 Zeichen beträgt. Die verschlüsselte Datei hingegen hat eine Pfadlänge von 265 Zeichen, worüber sich Hidrive beim Synchronisieren beschwert.

Wenn das Dateisystem, auf welchem der Tresor gespeichert ist, kein Limit hat und erst zu einem späteren Zeitpunkt die Synchronisation erfolgt, ist es in der Tat nicht möglich, ein solches Limit zu erkennen.

Ich habe noch ein wenig weiter mit meinen Dateien probiert. Es gibt viele Einflüsse auf den verschlüsselten Dateinamen. Ein wesentlicher scheint die Art der Zeichen zu sein - vor allem Sonderzeichen. Letztendlich bleibt es für den Anwender schwierig zu erkennen, wann eine Datei das Limit reißen wird.

Ich halte es für den besten Weg, auf das “Ziellimit” zu gehen, also die max. Pfadlänge des verschlüsselten Pfades. Der User muss sich nur während der Anlage des Tresors festlegen, ab dann funktioniert der Algorithmus im Hintergrund. Gleichzeitig minimiert man die Anzahl der Dateien, die mit der Verkürzungslogik behandelt werden - nämlich nur die, die Grenze reißen würden. Und ja, dieses Tresor-Format ist nicht abwärtskompatibel - dessen muss man sich bewusst sein.

Genau, das liegt daran, dass Zeichen mehrere Bytes einnehmen können. Insbesondere bei Emojis können (laut diesem Vortrag) da mal für ein einzelnes Zeichen gut 30 Bytes zusammenkommen.

Der Ciphertext für einen Cleartext mit n Bytes ist (16+n)*4/3+4 Zeichen lang.

Na ja, ich weiß, dass die Maximallänge auf meinem Dateisystem 260 Zeichen ist. Nun produziert cryptomator einen Pfad mit 266 Zeichen, obwohl das Standard-filenameLengthLimit 220 ist. Von den 266 Zeichen ist der von cryptomator generierte Teil 236 Zeichen (also auch > 220). Auf was genau bezieht sich denn das Limit?

Und wieso produziert cryptomator in der neuen Version so lange Pfadnamen? Mit 1.4 hat es prima funktioniert.

Ich habe es schon in einem anderen Thread geschrieben, aber auch hier nochmal:

Man muss zwischen der Pfadlänge und der Dateinamenlänge (evtl. auch Pfadkomponentenlänge) unterscheiden. Wer Lust hat kann für Windows etwas in der Microsoft Doku lesen.

Das Limit bezieht sich auf Dateinamen. Würde es sich auf Pfade beziehen, dann würde es auch “PathLengthLimit” heißen :wink:

Wenn dein Dateisystem nur 260 unterstützt, sollte es bei längeren Pfaden auch eine Fehlermeldung ausgeben, was auch Cryptomator erkennen würde. Aber anscheinend unterstützt eine andere Sache in deinem Aufbau keine 260 Zeichen.

Alles weitere kann man hier lesen: Error during updating vault (Cryptomator 1.5.3) - #7 by infeo

Interessant, ich bin in Kombination mit HiDrive von dem gleichen Problem betroffen. Ich habe jetzt mal in die settings.json geschaut und bei allen Tresoren ist das filenameLengthLimit auf 220 gesetzt. Außer bei dem, bei dem das Problem auftritt.

"filenameLengthLimit": -1,

Dabei habe ich dort nie manuell etwas geändert. Wie kommt das?

Ich vermute mal, dass dieser Tresor noch mit einer Version erstellt ist, die diesen Paramter noch nicht kannte. Wenn Du den Tresor dann migrierst, müsste dort 220 eingetragen werden. Wie geschrieben: Vermutung.

Gibt es jetzt hierzu schon eine Lösung mittels Update, oder funktioniert das nur mit dem hier angegeben Workaround von Infeo?

Ich hab das Problem auch seit 1.5 mit der Magenta Cloud

Wenn du mit Problem die Dateinamenlängenlimitierung des Magenta-Sync-Clients meinst, dann kann ein Update das nicht lösen. Schließlich unterstützt dein Dateisystem die volle Nameslänge und Cryptomator erkennt nicht, ob du die Magenta-Cloud benutzt. (und es ist sehr unwahrscheinlich, dass es das jemals wird)

Ich habe bezüglich der Problematik auch einen eigenen Artikel geschrieben, siehe [1.5.0+] File name too long.

1 Like

Ok ich hab das anhand der Anleitung mal gemacht, aber Magenta hat immer wieder neue Dateien die nicht passen. Er zeigt immer nur eine an und wenn ich das gefixed hab, kommt die nächste Datei.

Wollte das nun machen, dass ich einen neuen Tresor anlege, die Länge festlege und dann die Dateien rein synchronisiere - nur nun die Frage: Mit welchem Programm, kann man die Daten synchronisieren? Wollte das mit robocopy machen, aber Robocopy erkennt das Cryptomator Laufwerk nicht :frowning:

Versuchs mal ohne Admin-Rechte. Bei mir klappt es ohne Probleme, ich verwende Cryptomator 1.5.5 und Dokany.

Hallo zusammen,

ich habe ebenfalls Probleme mit HiDrive von Strato und Cryptomator. Die Anleitung von infeo habe ich bereits umgesetzt. Sprich ich habe einen neuen Tresor angelegt, bin in die json-Datei und habe für diesen Tresor die maximale Länge reduziert. Wenn ich die Daten in den Tresor kopiere, erhalte ich keine Fehlermeldung bzgl. der Länge. Erst wenn HiDrive mit dem Upload beginnt.
Ich habe mit der maximalen Länge gespielt, aber ich komme nicht weiter. HiDrive gibt einfach immer wieder Fehlermeldungen aus. Ich bin am Verzwifeln und überlege, ob ich auf Veracrypt umsteigen soll, persönlich finde ich für meinen Einsatz Cryptomator aber deutlich besser.

Ich freue mich über jegliche Rückmeldungen! Danke im Voraus!

Viele Grüße
Willbaer

Hallo Willbaer,

ich hatte das Problem die letzten Tage auch erneut.

Du musst auf zwei Dinge achten:

  1. Der gesamte Pfad darf für Hidrive nicht länger als 260 Zeichen sein. Zum Teil legt cryptomator selbst innerhalb des Containers eine Ordnerstruktur an, die relativ viele Zeichen beansprucht.

  2. Wenn man in Cryptomator nach dem Editieren der json Datei eine Einstellung am Container ändert scheint die manuell angepasste maxfilenamelength wieder mit 220 überschrieben zu werden.

Viele Grüße

Hallo JCrypt,

vielen Dank für deine Rückmeldung. Es lag wohl an der zusätzlichen Ordnerstruktur. Ich bin dennoch etwas irritiert, dass Cryptomator alles nimmt ohne eine Fehlermeldung auszugeben und HiDrive sich dann später beschwert. Ich bin jetzt so vorgegangen, dass ich immer nur einen Teil meiner Daten in den Container kopiert habe. Kam keine Meldung von HiDrive, dann war der nöchste Stoß dran. Das ist etwas umständlicher, aber es funktioniert. Nach vorne hin, werde ich jedoch darauf achten nicht mehr als zwei Orderebenen zu verwenden :slight_smile:

Nochmals vielen Dank und viele Grüße
Willbaer

Mit der JSON Anpassung änderst du nur die maximale Länge von Dateinamen. Nicht des kompletten Pfades. Hidrive meckert aber wegen der Länge der Pfade.
Ich denke hier liegt die Ursache da trotz deiner Dateinamen Limitierung die Pfade dennoch zu lang für hidrive sind.
Zur Ermittlung des korrekten Wertes für die maximale Gesamtlänge des Pfades (Siehe Kommentar von @JCrypt ) hilft diese Erklärung.

Hallo Michael, vielen Dank auch für deine Rückmeldung. Du hast Recht, ich war so auf die Länge fixiert, dass ich nicht bemerkt habe, dass ich nur die File-Länge angepasst habe. VG