Solved

Hochladen per Kommandozeile: ValueError bei PATCH-Request per curl

1 month ago

Moin liebe Community,

ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

Die MagentaCLOUD nutzt offenbar sabre/dav als WebDAV-Server. Das Abrufen der Cloudinhalte (PROPFIND-Request; liefert eine XML mit allen Dateien) und das Hochladen neuer Inhhalte (PUT-Request) funktionieren einwandfrei.

Was nicht funktioniert, ist das Anhängen von Inhalten an bereits hochgeladene Dateien mithilfe des PATCH-Requests, den der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch). Ich versuche es mit folgender Anfrage:

curl -vv
    --request PATCH "https://magentacloud.de/remote.php/webdav/test.txt"
    --data "OINK!"
    --header "Content-Length: 5"     
    --header "Content-Type: application/x-sabredav-partialupdate"
    --header "X-Update-Range: append"
     -u "username:password"

Obwohl bei den PROPFIND- und PUT-Befehen die Basic-Authentifizierung funktioniert, fordert der Server beim PATCH-Befehl offenbar eine strengere Methode. Es wird folgende Fehlermeldung ausgegeben:

ValueError
hash_init(): Argument #1 ($algo) must be a valid hashing algorithm

Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

Beste Grüße und vielen Dank schon mal für eure Hilfe!

Marek

43

0

4

    • 1 month ago

      Guten Abend Marek ( @marekshaw)!

      marekshaw
      ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

      Danke, dass du dein Vertrauen schenkst, allerdings sprengt das dann auch meinen Horizont. 😅

      marekshaw

      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

      Moin liebe Community,

       

      ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

       

      Die MagentaCLOUD nutzt offenbar sabre/dav als WebDAV-Server. Das Abrufen der Cloudinhalte (PROPFIND-Request; liefert eine XML mit allen Dateien) und das Hochladen neuer Inhhalte (PUT-Request) funktionieren einwandfrei.

       

      Was nicht funktioniert, ist das Anhängen von Inhalten an bereits hochgeladene Dateien mithilfe des PATCH-Requests, den der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch). Ich versuche es mit folgender Anfrage:

      curl -vv--request PATCH "https://magentacloud.de/remote.php/webdav/test.txt"--data "OINK!"--header "Content-Length: 5"      --header "Content-Type: application/x-sabredav-partialupdate"--header "X-Update-Range: append"-u "username:password"

      Obwohl bei den PROPFIND- und PUT-Befehen die Basic-Authentifizierung funktioniert, fordert der Server beim PATCH-Befehl offenbar eine strengere Methode. Es wird folgende Fehlelrmeldung ausgegeben:

        ValueErrorhash_init(): Argument #1 ($algo) must be a valid hashing algorithm

      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

       

      Beste Grüße und vielen Dank schon mal für eure Hilfe!

      Marek

       
      marekshaw
      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

      Vielleicht kann hier das geballte Wissen unserer Community unterstützend unter die Arme greifen. 😀 @Waage1969 Wer ist denn bei dem Thema so richtig im Bilde und magst mal her-verlinken? ☕

       

      Greetz

      Stefan

      0

    • Accepted Solution

      accepted by

      1 month ago

      marekshaw

      en der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch).

      Moin liebe Community,

      ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

      Die MagentaCLOUD nutzt offenbar sabre/dav als WebDAV-Server. Das Abrufen der Cloudinhalte (PROPFIND-Request; liefert eine XML mit allen Dateien) und das Hochladen neuer Inhhalte (PUT-Request) funktionieren einwandfrei.

      Was nicht funktioniert, ist das Anhängen von Inhalten an bereits hochgeladene Dateien mithilfe des PATCH-Requests, den der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch). Ich versuche es mit folgender Anfrage:

      curl -vv
          --request PATCH "https://magentacloud.de/remote.php/webdav/test.txt"
          --data "OINK!"
          --header "Content-Length: 5"     
          --header "Content-Type: application/x-sabredav-partialupdate"
          --header "X-Update-Range: append"
           -u "username:password"

      Obwohl bei den PROPFIND- und PUT-Befehen die Basic-Authentifizierung funktioniert, fordert der Server beim PATCH-Befehl offenbar eine strengere Methode. Es wird folgende Fehlermeldung ausgegeben:

      ValueError
      hash_init(): Argument #1 ($algo) must be a valid hashing algorithm

      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

      Beste Grüße und vielen Dank schon mal für eure Hilfe!

      Marek

      marekshaw

      en der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch).

      Wie kommst du auf die Idee?

      marekshaw

      ist das Anhängen von Inhalten an bereits hochgeladene Dateien

      Moin liebe Community,

      ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

      Die MagentaCLOUD nutzt offenbar sabre/dav als WebDAV-Server. Das Abrufen der Cloudinhalte (PROPFIND-Request; liefert eine XML mit allen Dateien) und das Hochladen neuer Inhhalte (PUT-Request) funktionieren einwandfrei.

      Was nicht funktioniert, ist das Anhängen von Inhalten an bereits hochgeladene Dateien mithilfe des PATCH-Requests, den der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch). Ich versuche es mit folgender Anfrage:

      curl -vv
          --request PATCH "https://magentacloud.de/remote.php/webdav/test.txt"
          --data "OINK!"
          --header "Content-Length: 5"     
          --header "Content-Type: application/x-sabredav-partialupdate"
          --header "X-Update-Range: append"
           -u "username:password"

      Obwohl bei den PROPFIND- und PUT-Befehen die Basic-Authentifizierung funktioniert, fordert der Server beim PATCH-Befehl offenbar eine strengere Methode. Es wird folgende Fehlermeldung ausgegeben:

      ValueError
      hash_init(): Argument #1 ($algo) must be a valid hashing algorithm

      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

      Beste Grüße und vielen Dank schon mal für eure Hilfe!

      Marek

      marekshaw

      ist das Anhängen von Inhalten an bereits hochgeladene Dateien

      Nicht gesehen, dass es eine derartige Funktion überhaupt nicht in der MagentaCloud gibt? 

      marekshaw

      Hat jemand eine Idee, wo das Problem liegen könnte?

      Moin liebe Community,

      ich habe ein Problem beim kommandozeilenbasierten Hochladen von Dateien in die MagentaCLOUD. 

      Die MagentaCLOUD nutzt offenbar sabre/dav als WebDAV-Server. Das Abrufen der Cloudinhalte (PROPFIND-Request; liefert eine XML mit allen Dateien) und das Hochladen neuer Inhhalte (PUT-Request) funktionieren einwandfrei.

      Was nicht funktioniert, ist das Anhängen von Inhalten an bereits hochgeladene Dateien mithilfe des PATCH-Requests, den der Server eigentlich verstehen sollte (siehe https://sabre.io/dav/http-patch). Ich versuche es mit folgender Anfrage:

      curl -vv
          --request PATCH "https://magentacloud.de/remote.php/webdav/test.txt"
          --data "OINK!"
          --header "Content-Length: 5"     
          --header "Content-Type: application/x-sabredav-partialupdate"
          --header "X-Update-Range: append"
           -u "username:password"

      Obwohl bei den PROPFIND- und PUT-Befehen die Basic-Authentifizierung funktioniert, fordert der Server beim PATCH-Befehl offenbar eine strengere Methode. Es wird folgende Fehlermeldung ausgegeben:

      ValueError
      hash_init(): Argument #1 ($algo) must be a valid hashing algorithm

      Hat jemand eine Idee, wo das Problem liegen könnte? Kann es sein, dass der WebDAV-Server falsch konfiguriert ist, oder wird der PATCH-Befehl einfach nicht unterstützt?

      Beste Grüße und vielen Dank schon mal für eure Hilfe!

      Marek

      marekshaw

      Hat jemand eine Idee, wo das Problem liegen könnte?

      Nextcloud kann das nicht. Daher kann es auch nicht die MagentaCloud. 

      Selbst bei DAV ist das nichts, was man häufig findet. 

      Darfst das nicht mit CalDAV o. CardDAV verwechseln. 

      1

      Answer

      from

      30 days ago

      Danke schon mal für die Erklärungen @CyberSW!

      Meine Idee war, dass der PATCH-Befehl von SabreDAV unterstützt wird (https://sabre.io/dav/http-patch/) und SabreDAV ist der WebDAV-Server, den die MagentaCLOUD nutzt. Dass hinter der MagentaCLOUD wiederum die Nextcloud steckt, hatte ich gar nicht auf dem Schirm.

      Du hast recht damit, dass die Nextcloud dieses SabreDAV-Feature noch nicht unterstützt (https://github.com/nextcloud/server/issues/15923). Nextcloud sieht für partielle Uploads dieses Vorgehen vor: https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/chunking.html.

      Das funktioniert für mich auch ganz gut bis auf den letzten Schritt, in dem die Dateien zusammengebaut werden sollen. Die Pseudodatei ".file", die den Vorgang starten soll, wird dann nicht gefunden. Eventuell hat das auch wieder mit Implementierungsdetails der MagentaCLOUD zu tun.

      Mit  CardDAV/CalDAV gibt es keine Verwechslungsgefahr, da ich diese Protokolle gar nicht kannte. ;)

      Ich werde jetzt einen eigenen Nextcloud-Server aufsetzen und das empfohlene Chunking einmal damit ausprobieren. Wenn es damit geht, liegt es an der MagentaCLOUD. Wenn es nicht gehen sollte, kriege ich irgendwas nicht auf die Reihe und muss weitersuchen.

      Viele Grüße und danke für den Anstoß mit der Nextcloud

      Marek

      PS: Entschuldigt bitte den furchtbar formatierten Text. Der Editor verhält sich nicht ganz so, wie ich es erwarten würde ;)

      Unlogged in user

      Answer

      from

    • 23 days ago

      Nur ein kurzer Nachtrag zur Nextcloud: 

      Es funktioniert auch mit einem Minimal-Ubuntu und einer Snap-Installation von Nextcloud mit Standardeinstellungen nicht. Es gibt beim Zusammenfügen der Dateien per MOVE-Befehl denselben Fehler wie bei der MagentaCLOUD (die vesteckte Datei .file wird nicht gefunden). Vielleicht ein Berechtigungsproblem, aber ich habe keine Lust mehr, mich damit zu beschäftigen.

      Jetzt mache ich es ohne Cloud und sichere die Dateien, die das lokale Netzwerk verlassen sollen, per rsync über SSH. Das kann abgebrochene Uploads fortsetzen, wie ich es mir vorstelle (-append-verify).

      Viele Grüße!

      PS: Wie kriegst du es hin @CyberSW, dass deine Zitate so sauber formatiert werden? Wenn ich das versuche, sieht es bei mir aus wie der letzte Schlonz.

      0

      0

    Unlogged in user

    Ask

    from

    This could help you too

    Solved

    in  

    430

    0

    1

    Solved

    in  

    952

    2

    4

    in  

    76

    0

    1