Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#10

AW: Datein auf einem Server verändern

  Alt 2. Jul 2014, 18:52
Um FTP kommst du wahrscheinlich nicht drum herum.
Ich kenn den Hintergrund für dein Programm nicht. Aber um z.B. das Problem zu umgehen, dass andere User ggf. auf gleiche Dateien zugreifen könnten (ich geh jetzt mal davon aus, das nur mit deinem Programm darauf zugegriffen wird), müßtest du dir ein Hilfsmittel schaffen um das auszuschließen.
z.B. könntest du die Daten vor dem runterladen umbenennen (z.B. blabla.ini in blabla.ini.lock). Das Umbenennen kann man per FTP-Protokoll direkt auf dem Webserver machen, also unabhängig von der Filesize. Dann die umbenannte Datei herunterladen, bearbeiten, hochladen und wieder auf alten Namen zurück ändern.
Dann müßtest du in deinem Programm natürlich berücksichtigen, dass die .lock-dateien in der Dateianzeige als "In Bearbeitung" angezeigt und von anderen Clients nicht bearbeitet werden können.

Oder andere Möglichkeit, du legst dir eine Unterverzeichnis auf dem FTP-Server an, sozusagen als LOCK-Ordner. In diesem Ordner legst vor dem Herunterladen eine Datei an, die genauso heißt wie die, die du bearbeiten möchtest. Diese Datei muß ja nicht viel beinhalten, vielleicht den Namen des Clients, der die ursprungsdatei bearbeiten will. Nun lädst du dir die Original herunter und bearbeitet diese. Wenn jetzt ein anderer Client auf deine Urspungsdatei zugreifen will, schaut er halt erst im LOCK-Order nach, ob eine Datei gleichen Namens dort existiert. Ist das der Fall, so kann er dem User mitteilen, dass die Datei gesperrt ist und von wem.
Nach dem Bearbeiten und wiederhochladen, löscht du einfach die entsprechende Datei aus dem LOCK-Ordner wieder, so kann sie wieder von allen bearbeitet werden.

Je nach dem, um was also im detail geht, findet sich schon eine Lösung. Mit oben genannten Möglichkeiten könntest du sogar größere Dateien bearbeiten, ohne Angst zu haben, dass evtl. Änderungen andere Clients beim wiederhochladen überschrieben werden. Ob das nun der eleganteste Weg ist, weiß ich nicht. Aber wenn man sich lediglich auf das FTP-Protokoll beschränken muß, dann muß man im Zweifelsfall auch Kompromisse bezüglich der Eleganz machen.
Mir würde auch noch eine Möglichkeit über das Rechtesystem der Dateien auf dem FTP-Server einfallen. Aber ich weiß nicht, in wie weit du auf die Rechte und die FTP-User-Verwaltung zugreifen kannst.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat