Gelöst

Hochladen per Kommandozeile: ValueError bei PATCH-Request per curl

vor 29 Tagen

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

    • Akzeptierte Lösung

      akzeptiert von

      vor 29 Tagen

      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

      Antwort

      von

      vor 29 Tagen

      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 ;)

      Uneingeloggter Nutzer

      Antwort

      von

    Das könnte Ihnen auch weiterhelfen

    Gelöst

    in  

    430

    0

    1

    Gelöst

    in  

    952

    2

    4

    in  

    76

    0

    1