Entwickler-Ecke

Internet / Netzwerk - Upload von Dateien - Prinzipfrage


jf_stgt - Mi 28.10.09 18:57
Titel: Upload von Dateien - Prinzipfrage
Hallo zusammen,

für ein Projekt wollen wir Kunden die Möglichkeit geben, dass sie Dateien (Größe max. 1 MB) uploaden (auf einen Internetserver).
Mittels eines anderen Softwaremoduls könnten diese dann von anderen Mitarbeitern heruntergeladen werden.
Die Dateien könnte man ja vor dem Upload verschlüsseln.
Der Name etc. würde in einer Internet-DB gespeichert.
Ich sehe dazu prinzipiell mehrere Möglichkeiten:

a) FTP-Zugang.
Vorteil: Einfach zu machen
Nachteil: FTP Kennúngen stehen in der exe. Dies finde ich etwas unschön. v.a. wenn alle Kunden dann den gleichen FTP Zugang nutzen würden, ...

b) Mittels HTTP-POST mit PHP Skript
Vorteil: Authentifikation und Eintragen von Infos in eine Datenbank könnte auch über das PHP Skript laufen.
Nachteil: Große Dateien können nicht(?) mit Fortschrittsbalken versehen werden, ...

c) Extra Listen-Skript auf dem root Server
Nachteil: Oversized ;-)

d) ???

Mir geht es darum welches Prinzip ihr verfolgen würdet und warum?
Also bitte keine Code-Snippets sondern erst mal das Prinzip.

Gruß
jf_stgt


Narses - Mi 28.10.09 19:00

Moin!

user profile iconjf_stgt hat folgendes geschrieben Zum zitierten Posting springen:
b) Mittels HTTP-POST mit PHP Skript
Vorteil: Authentifikation und Eintragen von Infos in eine Datenbank könnte auch über das PHP Skript laufen.
Nachteil: Große Dateien können nicht(?) mit Fortschrittsbalken versehen werden, ...
Warum sollte das nicht gehen? *klick* [http://www.easy-coding.de/wiki/php/upload-fortschritt-mit-php-ajax.html] :nixweiss:

cu
Narses


BenBE - Mi 28.10.09 20:36

@user profile iconNarses: Z.B. weil für Postdaten einige Server eine Begrenzung drin haben, dass Post-Daten nicht größer als X MB sein dürfen? Zudem sind POST-Requests zum Uppen großer Dateien blöd. Dann lieber über WebDAV mit PUT+PATCH-Requests ;-) Dann kann man die nämlich ggf. splitten bzw. auch "fortsetzen" ... Zumal dann sogar synchronisiertes Arbeiten beim Upload möglich wird (LOCK Requests).

Aber das nur nebenbei.


Martok - Mi 28.10.09 20:50

user profile iconjf_stgt hat folgendes geschrieben Zum zitierten Posting springen:
Nachteil: Große Dateien können nicht(?) mit Fortschrittsbalken versehen werden, ...

Soll das ganze im Browser oder in einer Client-Anwendung passieren?
Bei letzterem kennst du ja den TCP-Stream und damit auch wie viel schon übertragen wurde.

user profile iconjf_stgt hat folgendes geschrieben Zum zitierten Posting springen:
Mir geht es darum welches Prinzip ihr verfolgen würdet und warum?
Also bitte keine Code-Snippets sondern erst mal das Prinzip.


Wenn eh beide Seiten ein Client-Programm verwenden würde ich durchaus FTP nehmen. Immerhin ist es ja dafür da ;)
FTProot-Verzeichnis per Kunde und schon sollte das einigermaßen abgesichert sein.
Eventuell noch ein Webinterface für die Account-Verwaltung, aber das sollte ja machbar sein.


BenBE - Mi 28.10.09 20:55

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjf_stgt hat folgendes geschrieben Zum zitierten Posting springen:
Nachteil: Große Dateien können nicht(?) mit Fortschrittsbalken versehen werden, ...

Soll das ganze im Browser oder in einer Client-Anwendung passieren?
Bei letzterem kennst du ja den TCP-Stream und damit auch wie viel schon übertragen wurde.

Der Kernel traced bei TCP generell mit, wie viel Daten bereits an die Gegenstelle gesendet wurden. Den Wert bekommt man von der API abgerufen. Damit ist der Fortschritt noch mit am genausten dargestellt und bei bekannter Übertragungsmenge nahezu trivial darzustellen.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjf_stgt hat folgendes geschrieben Zum zitierten Posting springen:
Mir geht es darum welches Prinzip ihr verfolgen würdet und warum?
Also bitte keine Code-Snippets sondern erst mal das Prinzip.


Wenn eh beide Seiten ein Client-Programm verwenden würde ich durchaus FTP nehmen. Immerhin ist es ja dafür da ;)
FTProot-Verzeichnis per Kunde und schon sollte das einigermaßen abgesichert sein.
Eventuell noch ein Webinterface für die Account-Verwaltung, aber das sollte ja machbar sein.

FTP gehört getötet, abgeschafft und durch SCP ersetzt.


jf_stgt - Mi 28.10.09 21:16

Danke erstmal an alle.
Ja, es soll eine Delphi-Client-Anwendung sein.
Die Sache mit dem Fortschrittsbalken scheint mir also lösbar.
Die Begrenzung beim Upload via Post sollte auf 4 oder 10 MB stehen - also hier keine so große Rolle spielen.
Gibt es noch andere Ideen?

@BenBE. SCP interessiert mich natürlich auch. Wobei ich denke, dass FTP auch gehen müsste. Gibt es SCP Komponenten?

Gruß
jf_stgt


Manfred - Fr 30.10.09 15:00

Was FTP angeht, so rate ich auch davon ab, da nicht alle Deine Kunden problemlos FTP-Verbindungen öffnen können (Socket-Fehler).