Autor Beitrag
Novo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Mo 08.06.09 17:05 
hi,
ich meld mich mal auch wieder in der Delphi Szene zurück nach langer Zeit.

Ich möchte ein Autoupdate realisieren (wahrscheinlich mit Indy).
Es soll prüfen, ob eine neue Version meines Programms verfügbar ist, und dann die Dateien, die neu sind, downloaden!
Bloss ka. wie ich das anstellen soll, da das sehr viele Dateien sind, und fast alle keine integrierte Versionsnummer haben.
(MySQL Datenbank Files des portable Apache und einige Batch und ein Opensource Programm usw.)
Also dann wohl CRC oder MD5 Hash check, und wenn unterschiedlich -> download und ersetzen.

Wie mach ich das?
Kennt sich damit jemand aus?
Würde mich furchtbar freuen auf vllt. einer kleinen Zusammenarbeit in ICQ oder so, wenn mir einer helfen mag?


Mfg Novo


Zuletzt bearbeitet von Novo am Mo 08.06.09 17:08, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 08.06.09 17:07 
Es wäre wohl am sinnvollsten eine Dateiliste inkl. Versionsnummern zu führen.

Eine Checksumme online zur Verfügung zu stellen wäre aber sowieso sinnvoll um sicherzugehen, dass es keine Übertragungsfehler gibt. Und die könntest du natürlich auch vergleichen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.06.09 17:13 
Und nicht vergessen, in deinem Updater VOR dem Ersetzen der Dateien eine Signatur zu überprüfen, damit dir keiner was unterschieben kann.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Mo 08.06.09 17:16 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre wohl am sinnvollsten eine Dateiliste inkl. Versionsnummern zu führen

Danke für die schnelle antwort.
Das kannst du aber vergessen, das sind einfach viel zu viele Dateien!
Bisher hab ich das so, dass ich immer ein Full Pack mache, dass Programm läd die Full update.zip und entpackt sie.
Netter wärs echt, dass es nur die geänderten Files updated.
(Wobei das eh fast alle sind xD)

Das ist dann so nicht möglich.
Wobei ich einige Projekte kenne, die sehr viele Dateien updated, aber die haben wahrscheinlich alle Versionsnummern oder sind gelistet.
Das ist bei mir aber nicht möglich.

OK hat sich dann erledigt.


thx
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 09.06.09 00:48 
user profile iconNovo hat folgendes geschrieben Zum zitierten Posting springen:
Das kannst du aber vergessen, das sind einfach viel zu viele Dateien!
Warum? Das musst du doch nicht manuell machen. Du kannst doch ein Programm dafür schreiben, das die Liste jeweils aktualisiert und die Datei selbst vorher auch gleich hochlädt.
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Di 09.06.09 15:39 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNovo hat folgendes geschrieben Zum zitierten Posting springen:
Das kannst du aber vergessen, das sind einfach viel zu viele Dateien!
Warum? Das musst du doch nicht manuell machen. Du kannst doch ein Programm dafür schreiben, das die Liste jeweils aktualisiert und die Datei selbst vorher auch gleich hochlädt.


wenn du eine Idee hast, wie ich das umsetzen könnte :-)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 09.06.09 18:51 
Naja, am einfachsten wäre es, wenn in der Datei in jeder Zeile am Anfang der Dateiname und danach die Checksumme z.B. steht. Dann müsste dein Programm nur diese Datei in eine TStringList laden und alle Zeilen nach dem Dateinamen durchsuchen. Ist der noch nicht drin, wird er hinzugefügt.
Zusätzlich muss die Checksumme berechnet werden, dafür bietet sich MD5 an, da gibt es eine Unit dafür. Die solltest du finden, wenn du im Forum nach md5.pas suchst.
Zum Upload bietet sich dann TIdFTP von den Indy Komponenten an, wenn es sich um einen FTP-Server handelt. Wichtig ist dabei, dass du das Passwort in dem Uploadprogramm drin hast, du dieses also nicht weitergeben solltest.
oki
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP
Delphi 2007 Prof
BeitragVerfasst: Di 09.06.09 19:31 
Warum nicht ein Setup herunterladen und durch den Updater starten? Mit InnoSetup kann man das recht schnell und einfach erstellen. Die Version kann in den Dateinamen des Setup und fertig. Will man sich das zusammenstellen vieler unterschiedlicher Dateien in vielen Setups sparen, so kann man die Flags im InnoSetup nutzen (ignoreVersion etc.).

Gruß oki

_________________
42
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 09.06.09 19:33 
Dann müssten aber immer alle Dateien heruntergeladen werden in dem Setup statt selektiv die neuen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 09.06.09 19:42 
MD5 und SHA1 sollten nicht mehr genutzt werden. Alternativen wären SHA512 oder Whirlpool.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
oki
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP
Delphi 2007 Prof
BeitragVerfasst: Di 09.06.09 19:46 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dann müssten aber immer alle Dateien heruntergeladen werden in dem Setup statt selektiv die neuen.

Ja klar, bei vielen kleinen Dateien sollte das akzeptabel sein. Anderenfalls muß man den Aufwand auf der Updater-Seite treiben.
Die Frage ist halt immer, wo ist das Optimum zwischen Aufwand/Nutzen.

Gruß oki

_________________
42