WebDav - NextCloud
Habe mir per GetIt IPWorks 2020 installiert. Und per https://try.nextcloud.com/ einen NextCloud Testzugang eingerichtet. Dann per Demo webdav_11_Alexandria von IPWorks ein paar Tests gemacht. Mit der Komponente TipwWebDav kann per ListDirectory(url) ein Ordner abgefragt werden. Die Ergebnisse werden in einem Ereignis OnDirList geliefert. Dieses Ereignis liefert ResourceURI, DisplayName, ContentLanguage, ContentLength, ContentType und LastModified. Nun fällt auf, dass sämtliche Einträge eines Ordners zweimal in OnDirList geliefert werden und zwar einmal nur mit ResourceURI und dann nochmal mit weiteren Werten, allerdings wird nie ein DisplayName geliefert.
Hat Jemand auch per IPWorks, WebDav und NextCloud Tests durchgeführt? Welche Erfahrungen wurden gemacht? Hat Jemand eine Alternative um per WebDav Daten von einer NextCloud abzufragen? |
AW: WebDav - NextCloud
Ich nehme die bei Delphi mitgelieferte Indy-Komponente TidWebDAV.
Die tut alles was sie soll mit Nextcloud. Carsten |
AW: WebDav - NextCloud
Mit TidWebDAV bekomme ich nicht mal ein Login hin, auch nicht mit den Hilfen hier im Forum oder was man so mit googeln so findet.
Falls Du für mich ein Beispiel hättest, wäre dies Supper. Trotz allem, wäre es für mich von Interesse, ob Jemand IPWorks einsetzt. |
AW: WebDav - NextCloud
Hallo, ich verwende verschiedene Komponenten von /Nsoftware seit vielen Jahren. Die haben zwar ein merkwürdiges Design, aber hat man das begriffen sind es die stabilsten Komponenten die ich bisher verwendet habe.
WebDav habe ich bisher nie ausprobiert, da aber alle Komponenten gleich aufgebaut sind, sind die aber gleich zu debuggen. Für den Anfang, implementiere alle Ereignishandler und schreibe alle Ereignisse in einen Log. Schau dir an was der Befehl Config für Aufgaben hat. Es sind manchmal komisch Einstellungen zu machen. Hold dir eine Trial von FileZilla Pro, die kann auch WebDav. Damit kannst Du testen ob dort alles klappt wie es soll. |
AW: WebDav - NextCloud
Wichtig ist ein aktuelles Indy gewesen. Das musste ich erstmal aktualisieren.
Und dann muss natürlich die Verschlüsselung zum System passen. Ich kann mal ein paar Code-Schnipsel raussuchen. Carsten |
AW: WebDav - NextCloud
Hier mal der Inhalt der dfm-Datei und 2 Beispiele wie ich eine Datei und eine Auflsitung des Serverinhalts mache:
Code:
object IdConnectionIntercept: TIdConnectionIntercept
Left = 512 Top = 64 end object IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL Intercept = IdConnectionIntercept MaxLineAction = maException Port = 0 DefaultPort = 0 SSLOptions.Method = sslvTLSv1_2 SSLOptions.SSLVersions = [sslvTLSv1_2] SSLOptions.Mode = sslmUnassigned SSLOptions.VerifyMode = [] SSLOptions.VerifyDepth = 0 Left = 456 Top = 48 end object IdWebDAV: TIdWebDAV Intercept = IdConnectionIntercept IOHandler = IdSSLIOHandlerSocketOpenSSL OnWork = IdWebDAVWork OnWorkBegin = IdWebDAVWorkBegin OnWorkEnd = IdWebDAVWorkEnd HandleRedirects = True ProxyParams.BasicAuthentication = False ProxyParams.ProxyPort = 0 Request.CacheControl = 'no-cache' Request.Connection = 'Keep-Alive' Request.ContentEncoding = 'utf-8' Request.ContentLength = -1 Request.ContentRangeEnd = -1 Request.ContentRangeStart = -1 Request.ContentRangeInstanceLength = -1 Request.Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' Request.AcceptCharSet = 'utf-8' Request.BasicAuthentication = True Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' Request.Ranges.Units = 'bytes' Request.Ranges = <> HTTPOptions = [hoForceEncodeParams] Left = 400 Top = 32 end // datei öffnen stream:=TMemoryStream.Create; ss:=TStringList.Create; IdWebDAV.Request.URL:=....; IdWebDAV.Request.Username:=....; IdWebDAV.Request.Password:=....; IdWebDAV.Request.CustomHeaders.Clear; try IdWebDAV.Get(<URL der Datei>, stream); stream.Position:=0; ss.LoadFromStream(stream); except on E:Exception do MessageDlg(E.Message + ' ('+<URL der Datei>+')', mtWarning, [mbOK], 0); end; ss.Free; stream.Free; // dateiverzeichnis abfragen WebDAVXml:IXMLDocument ; xmlResponse:=TMemoryStream.Create; IdWebDAV.DAVPropFind(Serverpfad, nil, xmlResponse, '4', 1, 4); // Die '1' lädt das aktuelle Verzeichnis, die Tiefe kann hier bestimmt werden WebDAVXml:=TXmlDocument.Create(nil); try WebDAVXml.LoadFromStream(xmlResponse); ... xml analysieren except .... //xml-Fehler end; xmlResponse.free; |
AW: WebDav - NextCloud
Danke Carsten, hat sofort funktioniert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 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