Wann ist File vollstaendig hochgeladen?

Post Reply
Message
Author
sentor
Posts: 8
Joined: 06. May 2004 12:28

Wann ist File vollstaendig hochgeladen?

#1 Post by sentor »

Um mein Problem zu schildern, muss ich erst ein bisschen ausholen. Also... Ich habe ein Programm geschrieben, das auf die Erstellung von Files in bestimmten Verzeichnissen triggert, d.h. wenn in diesem Verzeichnis neue Dateien entstehen, werden eine odere mehrere Aktionen ausgefuehrt. Nun ist es so, dass dieses Verzeichnis gleichzeitig ein freies FTP-Verzeichnis ist und ich mit diesem ueber FTP hochgeladenen Dateien etwas machen will. Ich kann aber erst etwas mit diesen Dateien machen, wenn ich weiss, wann sie vollstaendig hochgeladen sind. Genau das ist mein Problem. Wie kann ich in C rausbekommen, ob eine Datei vollstaendig hochgeladen ist oder nicht. Gibt es etwas, nachdem ich in der Datei suchen kann, dass mir sagt, Datei ist vollstaendig ? Ist EOF geeignet? Derzeit mache ich es so, dass ich nach einen gewissen Zeitraum noch mal schaue, ob die Datei waechst (Aenderung der Dateigroesse), wenn ja, dann Upload noch nicht fertig. Allerdings erzeugt dieser Zeitraum bei kleinen dateien zuviel Overhead.

Waere nett, wenn sich Loesungsalternativen finden wuerden.

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#2 Post by Lateralus »

Ich glaube, dass mit EOF läuft nicht. Ich denke, dass steht immer da und wird nur weitergeschoben, wie sollte sonst überhaupt die Größe der Datei bestimmt werden? Hab aber auch keine Idee für dich...

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#3 Post by hjb »

Hi!

Solange die Datei hochgeladen wird, muß der FTP-Server sie noch offen haben. Du könntest also nach einem Dateideskriptor suchen, der auf die Datei verweist. Das wäre z.B. über die Process ID des FTP-Servers und das Verzeichnis /proc/*/fd möglich (oder lsof). Ist sicher recht umständlich. Einfacher wäre es, wenn der Server einen Lock auf die Datei setzen würde, während er hochlädt. Du müßtest dann selbst versuchen, den Lock zu bekommen, und wenn das gelingt, ist der Server fertig. Ob das geht, läßt sich aber wohl nur über den Quellcode des Servers in Erfahrung bringen. Wenn du den hast, kannst du auch gleich den Code zum Erzeugen des Locks einbauen ;-)

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Guest

#4 Post by Guest »

Hi,

viele ftp server bieten programme wie ftpwho oder ftptop an bzw zeigen den status der aktuellen status in einer log datei an. Vielleicht würde es sinn machen mit diesen log datein zu arbeiten ?! ... Die Dateigröße zu überwachen oder den Lösungsvorschlag über Deskriptoren halte ich für nicht sinvoll wenn der ftp server "resume" unsterstützen soll.

Post Reply