FTP size incorrect for files > 4GB

R

Raymond O'Connor

The net/ftp size method is supposed to return the size of a remote file,
but when the size of the remote file is > 4GB it seems to return the
wrong size.

The size of the remote file I'm testing is about 4.5 GB and size()
returns about 0.5 GB. Anyone having the same problems? Is there
somewhere I can report this problem?

Thanks
 
J

Jano Svitok

The net/ftp size method is supposed to return the size of a remote file,
but when the size of the remote file is > 4GB it seems to return the
wrong size.

The size of the remote file I'm testing is about 4.5 GB and size()
returns about 0.5 GB. Anyone having the same problems? Is there
somewhere I can report this problem?

It works for me. Can you 1. post test code to reproduce, 2. specify
ruby version and operating system?

You may try checking '12345678923456'.to_i as to_i is used to convert
string response to integer.

Finally, try running the ftp command manually, to see the precise ftp
server response. The code in net/ftp strips first three and the last
character. Maybe your server responds in a slightly different format.

For more details see net/ftp source, It's pure ruby and easy to
understand (at least the size method).

Jano

ruby -v:
ruby 1.8.5 (2006-08-25) [i386-mswin32] (one-click, xp sp2)

require 'net/ftp'
require 'test/unit'

class TestFtp < Test::Unit::TestCase
def setup
@ftp = Net::FTP.new('ftp.tuwien.ac.at')
@ftp.login
@ftp.chdir('opsys/linux/Mandrake-iso/2008.0')
end

def test_size
assert_equal 4612227072,
@ftp.size('mandriva-linux-2008.0-free-dvd-x86_64.iso')
end

def teardown
@ftp.close
end
end
 
R

Raymond O'Connor

RE: Jano Svitok

Thanks for your help. I tried out size on the mandriva iso and it came
out correctly, so I'm not sure what the problem is, but my guess at this
point is something is set up oddly on the ftp server I connect to
(Unfortunately its private so I can't post its information).

I did do calculations and for some reason on the ftp server I connect
to, the size of files over 4 GB is reported as actual size - 4 GB.
 
T

Tammo Tjarks

Hello,
I am not sure, but coud it be that the OS has only 32bit? Normally then
files bigger as $G should not be supported. But maybe also some of the
help-programs only 32bit. Only a guess.
 
J

Jano Svitok

RE: Jano Svitok

Thanks for your help. I tried out size on the mandriva iso and it came
out correctly, so I'm not sure what the problem is, but my guess at this
point is something is set up oddly on the ftp server I connect to
(Unfortunately its private so I can't post its information).

I did do calculations and for some reason on the ftp server I connect
to, the size of files over 4 GB is reported as actual size - 4 GB.

You may try connecting manually, using a cmdline client. Then use
CHDIR and SIZE commands to see what the server reports. The odds are
that the server itself doesn't support files larger than 2^32
(4294967296). The possible reasons are ftp software, the OS or used
filesystem. Look up ftpd version, and search the internet for possible
issues.
 
R

Raymond O'Connor

Tammo and Jano thanks for the suggestions. The whole 32 bit
architecture completely slipped my mind, and I'm sure it's the cause for
the mess. Thanks again for the help!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top