ftpclient und Dateien > 2 GB

Spezielle Fragen zu Netzwerk-Protokollen, DNS, Socket ...
Antworten
Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

ftpclient und Dateien > 2 GB

Beitrag von gambi » Di 16. Jul 2013, 22:09

Hallo Forenmitglieder,
hat jemand Erfahrungen mit dem up- download von Dateien mit dem ftpclient für Dateien, die größer als 2 GB sind?
Bei mir hängt der ftpclient zumindest immer.

gambi

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von gambi » Fr 26. Jul 2013, 19:59

Hallo gambanier. Hat denn keiner von Euch eine Antwort?
FileZilla hat da z.b. keine Probleme.

Gruß
gambi

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von tux_ » Fr 26. Jul 2013, 20:54

Der FtpClient haengt also, d.h. er tut nichts oder kommt nicht voran? Bist du sicher, dass er die Datei nicht nur noch nicht herunter-/heraufgeladen hat? Oder stuerzt das Programm gar ab? Der FtpClient von Gambas ist mithilfe der curl-Bibliothek implementiert und Google zeigt einige Treffer fuer Probleme mit Dateien > 2 GiB.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von gambi » So 28. Jul 2013, 13:27

tux_ hat geschrieben:Der FtpClient haengt also, d.h. er tut nichts oder kommt nicht voran? Bist du sicher, dass er die Datei nicht nur noch nicht herunter-/heraufgeladen hat? Oder stuerzt das Programm gar ab? Der FtpClient von Gambas ist mithilfe der curl-Bibliothek implementiert und Google zeigt einige Treffer fuer Probleme mit Dateien > 2 GiB.


Hallo tux_,
besten Dank zunächst für deine Rückmeldung.
Ich habe hier zwei debug-Aufzeichnungen des ftpclients für den Download von Dateien etwas kleiner als 2GB und größer als 2GB.
Wie zuerkennen ist, endet der Download im Fehlerfall mit "* Failed writing body (416 != 2896)"
Die heruntergeladene Datei hat genau 2.147.483.647 bytes bzw. 2GB während die Filesize ja 2.215.489.610 bytes bzw. 2,06 GB ist.
Das mit curl habe ich auch gelesen, wobei es offensichtlich auch eine Version gibt, die "Largefile: This curl supports transfers of large files, files larger than 2GB." unterstützt (http://curl.haxx.se/docs/manpage.html).

Weitere Ideen und Anregungen sind gerne willkommen :idea:
gambi

Hier also das Listing für den ok-Fall:
* About to connect() to fritz.box port 21 (#0)
* Trying 192.168.178.1...
* 0x85402a8 is at send pipe head!
* STATE: CONNECT => WAITCONNECT handle 0x8548b80; (connection #0)
* Connected to fritz.box (192.168.178.1) port 21 (#0)
* Connected to fritz.box (192.168.178.1) port 21 (#0)
* FTP 0x854947c state change from STOP to WAIT220
* STATE: WAITCONNECT => PROTOCONNECT handle 0x8548b80; (connection #0)
< 220 FRITZ!BoxWLAN3270v3 FTP server ready.
> USER FTPUSER
* FTP 0x854947c state change from WAIT220 to USER
< 331 Password required for FTPUSER.
> PASS PASSWORD
* FTP 0x854947c state change from USER to PASS
< 230 User FTPUSER logged in.
> PWD
* FTP 0x854947c state change from PASS to PWD
< 257 "/" is current directory.
* Entry path is '/'
* FTP 0x854947c state change from PWD to STOP
* protocol connect phase DONE
* STATE: PROTOCONNECT => DO handle 0x8548b80; (connection #0)
* DO phase starts
> CWD Freecom-MobileDriveXXS-01
* FTP 0x854947c state change from STOP to CWD
* STATE: DO => DOING handle 0x8548b80; (connection #0)
< 250 CWD command successful.
> EPSV
* FTP 0x854947c state change from CWD to PASV
* Connect data stream passively
< 229 Entering Extended Passive Mode (|||58272|)
* Trying 192.168.178.1...
* Connecting to 192.168.178.1 (192.168.178.1) port 58272
* FTP 0x854947c state change from PASV to STOP
* DO phase is complete
* STATE: DOING => DO_MORE handle 0x8548b80; (connection #0)
> TYPE I
* FTP 0x854947c state change from STOP to RETR_TYPE
< 200 Type set to I.
> SIZE DOWNLOAD_DATEI
* FTP 0x854947c state change from RETR_TYPE to RETR_SIZE
< 213 2004910192
> RETR DOWNLOAD_DATEI
* FTP 0x854947c state change from RETR_SIZE to RETR
< 150 Opening BINARY mode data connection for 'DOWNLOAD_DATEI' (2004910192 bytes).
* Maxdownload = -1
* Getting file with size: 2004910192
* FTP 0x854947c state change from RETR to STOP
* DO-MORE phase ends with 0
* STATE: DO_MORE => DO_DONE handle 0x8548b80; (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x8548b80; (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x8548b80; (connection #0)
* additional stuff not fine transfer.c:1037: 0 0
...
* additional stuff not fine transfer.c:1037: 0 0
* nread <= 0, server closed connection, bailing
* STATE: PERFORM => DONE handle 0x8548b80; (connection #0)
* Remembering we are in dir "Freecom-MobileDriveXXS-01/"
< 226 Transfer complete.
* Connection #0 to host fritz.box left intact

... und hier für den Fehlerfall:
* About to connect() to fritz.box port 21 (#0)
* Trying 192.168.178.1...
* 0x9cd4308 is at send pipe head!
* STATE: CONNECT => WAITCONNECT handle 0x9cdcc70; (connection #0)
* Connected to fritz.box (192.168.178.1) port 21 (#0)
* Connected to fritz.box (192.168.178.1) port 21 (#0)
* FTP 0x9cdd56c state change from STOP to WAIT220
* STATE: WAITCONNECT => PROTOCONNECT handle 0x9cdcc70; (connection #0)
< 220 FRITZ!BoxWLAN3270v3 FTP server ready.
> USER FTPUSER
* FTP 0x9cdd56c state change from WAIT220 to USER
< 331 Password required for FTPUSER.
> PASS PASSWORD
* FTP 0x9cdd56c state change from USER to PASS
< 230 User FTPUSER logged in.
> PWD
* FTP 0x9cdd56c state change from PASS to PWD
< 257 "/" is current directory.
* Entry path is '/'
* FTP 0x9cdd56c state change from PWD to STOP
* protocol connect phase DONE
* STATE: PROTOCONNECT => DO handle 0x9cdcc70; (connection #0)
* DO phase starts
> CWD Freecom-MobileDriveXXS-01
* FTP 0x9cdd56c state change from STOP to CWD
* STATE: DO => DOING handle 0x9cdcc70; (connection #0)
< 250 CWD command successful.
> EPSV
* FTP 0x9cdd56c state change from CWD to PASV
* Connect data stream passively
< 229 Entering Extended Passive Mode (|||38971|)
* Trying 192.168.178.1...
* Connecting to 192.168.178.1 (192.168.178.1) port 38971
* FTP 0x9cdd56c state change from PASV to STOP
* DO phase is complete
* STATE: DOING => DO_MORE handle 0x9cdcc70; (connection #0)
> TYPE I
* FTP 0x9cdd56c state change from STOP to RETR_TYPE
< 200 Type set to I.
> SIZE DOWNLOAD_DATEI
* FTP 0x9cdd56c state change from RETR_TYPE to RETR_SIZE
< 213 2215489610
> RETR DOWNLOAD_DATEI
* FTP 0x9cdd56c state change from RETR_SIZE to RETR
< 150 Opening BINARY mode data connection for 'DOWNLOAD_DATEI' (2215489610 bytes).
* Maxdownload = -1
* Getting file with size: 2215489610
* FTP 0x9cdd56c state change from RETR to STOP
* DO-MORE phase ends with 0
* STATE: DO_MORE => DO_DONE handle 0x9cdcc70; (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x9cdcc70; (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x9cdcc70; (connection #0)
* additional stuff not fine transfer.c:1037: 0 0
...
* additional stuff not fine transfer.c:1037: 0 0
* Failed writing body (416 != 2896)
* Remembering we are in dir "Freecom-MobileDriveXXS-01/"
* response reading failed
* Connection #0 to host fritz.box left intact

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von tux_ » So 28. Jul 2013, 14:28

Hier[0] steht, dass curl seit 7.11.1 solch grosze Dateien unterstuetzen sollte. Mein curl ist 7.30 und fuehrt das Largefile-Feature in der Liste auf. Wie im verlinkten Thread steht, kann es auch an deinem Server liegen...? Was sagt denn "curl --version"?

[0] http://curl.haxx.se/mail/archive-2005-11/0146.html
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von gambi » So 28. Jul 2013, 18:04

Hallo,
die Version ist 7.27.0.
Am Server sollte es eigentlich nicht liegen, da mit FileZilla ein Download problemlos möglich ist.

Nachtrag:
Mit curl von der Kommandozeile funktioniert der Download.
D.h., die Implemtierung von curl bzw. libcurl in gambas scheint das Problem zu sein.

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von tux_ » Di 30. Jul 2013, 11:48

Minisini hat in Revision 5766 ein paar Aenderungen eingebaut. Kannst du Gambas vom SVN-Repositorium (trunk) kompilieren und damit testen? Instruktionen dafuer stehen hier[0].

[0] http://gambasdoc.org/help/howto/svn?v3
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von gambi » Mo 5. Aug 2013, 19:40

Hallo tux_,
die SVN-Installation hat leider nicht funktioniert. Ich habe mittlerweile einen workaround mit cURL in gambas umgesetzt, mit dem es einwandfrei fuktioniert. Bis die Rev 5766 in einer offiziellen Version kommt, werd ich mich eben gedulden.
gambi

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: ftpclient und Dateien > 2 GB

Beitrag von gambi » So 26. Jan 2014, 11:51

Ich wärme das Thema noch mal auf.
In der aktuellen Gambas-Version 3.5.2 leider immer noch das selbe Problem. Bis 2 Gbyte alles ok. Danach Sende- bzw. Empfangspause...
Irgendwelche Ideen ???

Gruß gambi

Meine Konfig:
[System]
Gambas=3.5.2
OperatingSystem=Linux
Kernel=3.5.0-17-generic
Architecture=x86
Distribution=Linux Mint 14 Nadia
Desktop=GNOME
Theme=QGtk
Language=de_DE.UTF-8
Memory=3970M
[Libraries]
Cairo=libcairo.so.2.11200.2
Curl=libcurl.so.4.2.0
DBus=libdbus-1.so.3.7.2
GStreamer=libgstreamer-0.10.so.0.30.0
GStreamer=libgstreamer-1.0.so.0.1.0
GTK+=libgtk-x11-2.0.so.0.2400.13
OpenGL=libGL.so.1.2.0
Poppler=libpoppler.so.28.0.0
Qt4=libQtCore.so.4.8.3
SDL=libSDL-1.2.so.0.11.4

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast