Entwickler-Ecke

Internet / Netzwerk - Download von HiDrive - WebDAV


Klaus Müller - Di 07.01.20 12:15
Titel: Download von HiDrive - WebDAV
Hallo Programmierer,

Ich brauche in einen Programm ein Download von einem HiDrive:
Hier der Link: https://my.hidrive.com/share/89eadvtypb
Dort ist eine Datei "Test.txt"
die würde ich gerne laden.
Habe das früher einmal mit folgender Funktion gemacht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function DownloadFile(URL: widestring; Path: string): Boolean;
lStream:=TFileStream.Create(Ziel, fmCreate or fmShareDenyNone);
try
Try
  fMain.IdHTTP.Get(Http, lStream);
  Result:= True;
except
  ShowMessage(fMain.IdHTTP.ResponseText);
  Result:= False;
End;
finally
  lStream.Free;
End;

Nur leider funktioniert das nicht.
Wer hat hier einen Vorschlag die man das hinbekommt?

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


jasocul - Di 07.01.20 12:26

user profile iconKlaus Müller hat folgendes geschrieben Zum zitierten Posting springen:
Nur leider funktioniert das nicht.

Was funktioniert denn nicht? Gibt es eine Fehlermeldung? Bist du schon mit dem Debugger durchgegangen? ...

Und bitte den Source in Delphi-Tags packen.


Klaus Müller - Di 07.01.20 16:39

Hallo Th69, die Fehlermeldung ist: "Error" mehr kommt da nicht, kann aber auch nicht gehn da da das HiDrive ein WebDAV zugriff bereitstellt.

Gruß
Klaus

Moderiert von user profile iconTh69: Vollzitat entfernt.


Gausi - Di 07.01.20 17:17

Ist mit den SSL-Libraries alles in Ordnung? Wenn das "früher" mal geklappt hat und jetzt nicht mehr, liegt es vielleicht daran, dass der Server mittlerweile umgestellt wurde? :gruebel:

Wenn ich mit den neueren THttpClient (von Delphi, nicht Indy) den Link im ersten Posting aufrufe (damit gibt es keine Probleme in Richtung SSL), dann bekomme ich ein HTML-Dokument, in dem im Wesentlichen drinsteht, dass ohne JavaScript im Browser dort nichts läuft.


Th69 - Di 07.01.20 18:14

Hallo,

du benötigst dafür einen direkten Download-Link (URL). Hast du denn bei HiDrive die einzelne Datei freigegeben oder aber den Ordner "Test"?
So genau blicke ich bei dem Code von der Seite auch nicht durch (aber es scheint per JavaScript und Ajax die Datei "Test.txt" geöffnet werden zu können, aber die eingebettete JS-Datei hdshare.js [https://my.hidrive.com/share/v1.31.1/js/hdshare.js] ist - wohl auch aus Performance- und Verschleierungsgründen - sehr unleserlich).

PS: Ich hatte nur die Delphi-Tags hinzugefügt, jasocul [https://entwickler-ecke.de/user_jasocul.html] hatte dir geantwortet. ;-)


Klaus Müller - Di 07.01.20 18:20

Ich habe den Ordner Freigegeben.

Moderiert von user profile iconTh69: Vollzitat entfernt.


jasocul - Mi 08.01.20 09:21

Ich habe das bei mir mal mit einer Datei-Freigabe getestet. Auch dabei wird ein Java-Script erzeugt und entspricht somit keinem direkten Download-Link.


jaenicke - Mi 08.01.20 10:07

Dort wird offenbar OAuth oder eine ähnliche Authentifizierung verwendet. Dadurch braucht man die vorherigen Anfragen, die der Browser durch das Aufrufen der Webseite macht, damit der direkte Downloadlink funktioniert, da der Authentifizierungsheader gesetzt sein muss.

Was sagt denn der Support? Der ist bei Strato doch gut erreichbar.


Klaus Müller - Mi 08.01.20 11:25

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dort wird offenbar OAuth oder eine ähnliche Authentifizierung verwendet. Dadurch braucht man die vorherigen Anfragen, die der Browser durch das Aufrufen der Webseite macht, damit der direkte Downloadlink funktioniert, da der Authentifizierungsheader gesetzt sein muss.

Was sagt denn der Support? Der ist bei Strato doch gut erreichbar.

Hallo Jaenicke,
Strato gibt kein Delphi Support.

Gruß
Klaus


jaenicke - Mi 08.01.20 18:25

user profile iconKlaus Müller hat folgendes geschrieben Zum zitierten Posting springen:

Strato gibt kein Delphi Support.
Das hat ja mit Delphi nichts zu tun. Ein Beispiel aus einer anderen Sprache nach Delphi zu übersetzen ist ja das geringste Problem.

Da Hidrive ja offenbar WebDav unterstützt und es entsprechende Komponenten günstig für Delphi gibt, wäre das z.B. vielleicht eine Möglichkeit.

Da stehen ja in der Doku noch andere Protokolle wie SMB... irgendetwas davon wird ja gehen.


Klaus Müller - Do 09.01.20 13:02

Hallo Sebastian,

Ich brauch eine Funktion in Delphi (Download URL) die in meinem Programm verwendet wird.
Strato(HiDrive), Microsoft (OneDrive), Google (Google Drive) und weitere bitten alle Programme an diese Synchronisieren ein Verzeichnis vom Lokalen Rechner mit dem Cloud Drive.
Ich will aber über die Freigabe von einem Ordner auf die darin befindlichen Daten zugreifen, sieh an Anfang und dort eine Datei herunterladen.

Gruß
Klaus


Sinspin - Fr 10.01.20 12:15

Hallo Klaus,

ich schließe mich user profile iconjaenicke an. Wende dich einfach an Strato und frage nach einem Beispiel für den Zugriff via WebDav mit irgend einer Programmiersprache oder irgend einem Programm. Wenn du den Link oder die Anweisungen für WebDav hast, bist du vermutlich schlauer als jetzt und wir kommen hier weiter ;-)


Klaus Müller - Mo 13.01.20 18:29

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Hallo Klaus,

ich schließe mich user profile iconjaenicke an. Wende dich einfach an Strato und frage nach einem Beispiel für den Zugriff via WebDav mit irgend einer Programmiersprache oder irgend einem Programm. Wenn du den Link oder die Anweisungen für WebDav hast, bist du vermutlich schlauer als jetzt und wir kommen hier weiter ;-)


Hallo Ihr,

Also die Anfrage an Strato läuft, dauert ein paar Tage bis die antworten, mit Delphi kenne sich da nur ein paar aus.

Gruß
Klaus Müller


jaenicke - Di 14.01.20 06:21

user profile iconKlaus Müller hat folgendes geschrieben Zum zitierten Posting springen:
mit Delphi kenne sich da nur ein paar aus.
Darum stelle ich solche Fragen immer unabhängig von der Programmiersprache. Aber wenn es eine Antwort direkt für Delphi gibt, ist es natürlich am einfachsten.