Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   FTP und SetModTime (https://www.delphipraxis.net/191830-ftp-und-setmodtime.html)

Harry Stahl 23. Feb 2017 20:54

FTP und SetModTime
 
Ich möchte nach einem FTP-Upload einer Datei auf den Server (per FTP.Put) gleich danach per FTP.SetModTime die Datei auf dem Server mit dem Datum und Uhrzeit der lokalen Datei versehen.

Erhalte aber die Fehlermeldung "EIDReplyRFCError", "No such file or directory".

Was mache ich da falsch?

Delphi-Quellcode:
var
  S, fn: String;
  ALocalTime: TDateTime;
begin
  ...

  if not IdFTP1.Connected then begin
    IdFTP1.Connect;
    IdFTP1.ChangeDir(edCurDir.text);
  end;

  ...

  ALocalTime := GetFileDateTime(S); // S enthält PFad und Dateiname der lokalen Datei
  fn := ExtractFileName(s);
  IdFTP1.put(s, fn); // Das funktioniert
  idFTP1.SetModTime(fn, ALocalTime);  // hier krachts

Harry Stahl 23. Feb 2017 21:20

AW: FTP und SetModTime
 
So'n Mist, scheint wohl ein Server-Problem zu sein :

http://www.indyproject.org/kb/index.html?ftpsettime.htm

Gibt es sonst keine andere zuverlässige Variante einen Zeitstempel für eine Datei auf dem Server zu setzen?

Benedikt Magnus 24. Feb 2017 09:00

AW: FTP und SetModTime
 
Hast du nur Zugriff über FTP?

Harry Stahl 24. Feb 2017 18:35

AW: FTP und SetModTime
 
Woran denkst Du? HTTP?

Es handelt sich um einen Strato-Server, wo ich meine Homepage gehostet habe. Ich will eine Erweiterung in mein FTP-Programm einbauen, wo man dann besser mit lokalen Dateien und Dateien auf dem Server Sychronisationen durchführen kann.

Habe mir schon überlegt, wenn ich auf Server stoße, die mit der Modifikation von Zeitstempeln Probleme haben, da eine zusätzliche Datei abzulegen, welche die "wahren" Zeitstempel speichert und die mein FTP-Programm dann ausliest und anzeigt.

Allerdings alles ein wenig umständlich, wenn es eine einfachere Lösung gäbe, wäre die mir lieber...

Benedikt Magnus 24. Feb 2017 18:40

AW: FTP und SetModTime
 
Eher an SFTP/SSH. Damit dürfte es sich auf jeden Fall umsetzen lassen.

Wenn du per HTTP(S) Zugriff hast, wäre es aber vermutlich einfacher, damit auf ein Skript zuzugreifen, das den Zeitstempel setzt.

Harry Stahl 24. Feb 2017 19:12

AW: FTP und SetModTime
 
Ist das durch SFTP/SSH "moderner" bzw. lassen die Server deswegen mehr zu?

Und SFTP funktioniert wohl nicht mit den Indys? Es soll eine crosscompile-Lösung sein, also unter Windows, Linux und MAC verwendbar.

Benedikt Magnus 25. Feb 2017 13:45

AW: FTP und SetModTime
 
Zitat:

Zitat von Harry Stahl (Beitrag 1362599)
Ist das durch SFTP/SSH "moderner" bzw. lassen die Server deswegen mehr zu?

SSH ist eine verschlüsselte Weiterentwicklung des Telnetprotokolls für die Bedienung entfernter Server über Kommandozeile. SFTP (nicht zu verwechseln mit FTPS, das FTP mit SSL/TLS darstellt) ist das darauf aufbauende Protokoll für den Dateitransfer.
Zumindest SFTP ohne Shell ist heute bei den meisten Servern/Webhostern verfügbar, da es einen verschlüsselten Transport ermöglicht.

Zitat:

Zitat von Harry Stahl (Beitrag 1362599)
Und SFTP funktioniert wohl nicht mit den Indys? Es soll eine crosscompile-Lösung sein, also unter Windows, Linux und MAC verwendbar.

Mit den Indys leider nicht (das wünsche ich mir auch schon eine Ewigkeit :-D ), das dürfte jedoch mit Synapse machbar sein, gemacht habe ich es allerdings noch nie. Alternativ könntest du unter Windows Putty/Plink nehmen und unter Linux/Mac das eingebaute SSH.

Einfacher dürfte es jedoch über HTTP(S) sein. Wenn der Server PHP oder ähnliches unterstützt, ließe sich das sogar durch Hochladen des Skriptes per FTP bei Inkompatibilität zu SetModTime automatisieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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