Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   TNetHTTP Ordner erstellen auf Nextcloud (https://www.delphipraxis.net/210035-tnethttp-ordner-erstellen-auf-nextcloud.html)

christexel 20. Feb 2022 00:52

TNetHTTP Ordner erstellen auf Nextcloud
 
Hallo Zusammen,

ich schreibe eine Anwendung die Platformunabhängig sein soll für den Nextcloud Datei Upload (Win+MacOS).
Dazu habe ich jede menge Beiträge zu den Indy Komponenten gesehen, leider habe ich keine Möglichkeit gefunden diese ans laufen zu bekommen. Aufgrund der SSL. Bibliothek Problematik....
Ich nutze THTTPClient u.a. fürs hochladen, komme aber nicht weiter weil ich das
equivalent für das IndyWebDAV.DAVMakeCollection(URL); zum erstellen von Ordnern nicht kenne.
Die Embarcadero Hilfe ist leider schon eine ewigkeit Offline bzw. funktioniert leider nicht mehr.
Habt ihr ein Vorschlag für mich?

Besten Dank


Delphi-Quellcode:
URL:='https://'+varServerAdresse+'/remote.php/webdav/'+varUsername+'/'+varNeuerOrdner;
IdWebDAV.DAVMakeCollection(URL);

Hier ist die komplette Function mit den Indy Komponenten.

Delphi-Quellcode:
function OrdnerErstellen(NachOrdner, NeuerOrdner : String) : String;
var
  URL : String;
  Ergebnis : String;
begin
  Ergebnis := '';
  NachOrdner := Trim(NachOrdner);
  NeuerOrdner := Trim(NeuerOrdner);

  IdWebDAV.Request.UserName := varUsername;
  IdWebDAV.Request.Password := varPassword;
 
  IdWebDAV.Request.BasicAuthentication := true;
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv23; //MAC BIG SUR - FUNZT NICHT :-(
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
  IdWebDAV.IOHandler := IdSSLIOHandlerSocketOpenSSL;
 
  IdWebDAV.AllowCookies := True;
  IdWebDAV.HandleRedirects := True;
  IdWebDAV.Request.ContentType := 'application/x-www-form-urlencoded';

  URL := 'https://'+varServerAdresse+'/remote.php/webdav/'+varUsername+'/'+varNeuerOrdner;
  URL := MacSonderzeichenEncode(URL);

 IdWebDAV.DAVMakeCollection(URL);

 Ergebnis:='Ordner: '+NachOrdner+'/'+NeuerOrdner +' wurde erstellt!';
 OrdnerErstellen:=Ergebnis;
end;

Delphi.Narium 21. Feb 2022 12:44

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Wird das denn überhaupt unterstüzt? Hypertext Transfer Protocol Version 2 (HTTP/2) - RFC 7540

christexel 21. Feb 2022 13:23

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Eine gute Frage, wenn ich Dateien hoch- und runterladen kann, dann muss ich damit doch auch Ordner erstellen können? Oder habe ich einen gedanken Fehler?

christexel 21. Feb 2022 13:31

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Ich bin aber auch gerne für andere Tipps offen, allerdings habe ich noch nie andere Komponenten verwendet....

Delphi.Narium 21. Feb 2022 13:39

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Nein, Du musst keine Verzeichnisse erstellen können. Wenn eine Schnittstelle, ein Protokoll irgendetwas nicht hergibt, dann ist das so. Nur weil es woanders geht, muss das nicht überall so sein.

WebDav ist ein Aufsatz. der mehr als nur die HTTP-Grundfunktionalität abbildet, aber HTTP selbst kann sowas (meines Wissens) nicht.

Denkfehler würd' ich das nicht nennen, nur eine vom HTTP-Protokoll nicht erfüllte (erfüllbare) Erwartungshaltung.

Die Frage, die sich hier stellt ist nicht die nach den zu nutzenden Komponenten, sondern zuerst die nach den von der "Gegenseite" unterstützten Möglichkeiten. Was bietet sie? Danach kannst Du dann entscheiden, mit welchen Komponenten Du ans Ziel kommen möchtest.

Egal welche Komponenten Du nutzt: Wenn die Gegenseite / das Protokoll die gewünschte Funktionalität nicht bietet. hilft Dir keine Komponenten dabei, diese Funktionalität zu implementieren.

Rollo62 21. Feb 2022 13:46

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Zitat:

Zitat von christexel (Beitrag 1502547)
Ich bin aber auch gerne für andere Tipps offen, ...

NextCloud hat auch eine REST Api.
Hier gibt es eine Schnittstelle dazu, habe ich allerdings nicht getestet.

Die REST Api würde Dir womöglich das WebDav Geraffel ersparen, hat aber alles Vor- und Nachteile.

christexel 21. Feb 2022 15:29

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Danke. Das auf Github habe ich auch versucht zu nutzen, allerdings werden Indy Komponenten verwendet die unter Mac leider nicht laufen.
Es gab ein Pull-request https://github.com/IndySockets/Indy/pull/299
Habe auch bereits verschiedene *.dylibs verwendet, aber es mag einfach nicht funktionieren.

Ich habe gerade gesehen, das die Delphi Hilfe wieder Online ist, ich versuche das mal mit den REST Kompnenten von Delphi, das sieht vielversprechend aus.

christexel 21. Feb 2022 15:35

AW: TNetHTTP Ordner erstellen auf Nextcloud
 
Hab mich zu Früh gefreut....ist wieder OFF


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz