AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TNetHTTP Ordner erstellen auf Nextcloud
Thema durchsuchen
Ansicht
Themen-Optionen

TNetHTTP Ordner erstellen auf Nextcloud

Ein Thema von christexel · begonnen am 20. Feb 2022 · letzter Beitrag vom 21. Feb 2022
Antwort Antwort
christexel

Registriert seit: 20. Feb 2022
5 Beiträge
 
#1

TNetHTTP Ordner erstellen auf Nextcloud

  Alt 20. Feb 2022, 01:52
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;

Geändert von christexel (20. Feb 2022 um 02:11 Uhr) Grund: Code vergessen einzufügen
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#2

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 13:44
Wird das denn überhaupt unterstüzt? Hypertext Transfer Protocol Version 2 (HTTP/2) - RFC 7540
  Mit Zitat antworten Zitat
christexel

Registriert seit: 20. Feb 2022
5 Beiträge
 
#3

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 14:23
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?
  Mit Zitat antworten Zitat
christexel

Registriert seit: 20. Feb 2022
5 Beiträge
 
#4

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 14:31
Ich bin aber auch gerne für andere Tipps offen, allerdings habe ich noch nie andere Komponenten verwendet....
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#5

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 14:39
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.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#6

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 14:46
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.
  Mit Zitat antworten Zitat
christexel

Registriert seit: 20. Feb 2022
5 Beiträge
 
#7

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 16:29
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.
  Mit Zitat antworten Zitat
christexel

Registriert seit: 20. Feb 2022
5 Beiträge
 
#8

AW: TNetHTTP Ordner erstellen auf Nextcloud

  Alt 21. Feb 2022, 16:35
Hab mich zu Früh gefreut....ist wieder OFF
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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