Transferring 100GB over a web interface makes me cringe. It would be much better to write/use a standalone application to do the transfer.
If you are already using Ruby, you can write a Ruby-based app that uploads over FTP. For example:
require 'net/ftp'
Net::FTP.open('uploads.yoursite.com','username','password') {|ftp|
ftp.login('username','password')
ftp.put 'filename'
if (ftp.last_response != "266 Transfer complete.\n")
puts "Error with FTP upload\nResponse was: #{ftp.last_response}"
end
}
I use this code to upload auto-generated data files to another server that archives them. There are several different libraries for building simple user interfaces in Ruby, and all you would need is a simple window where the user can enter their username and password, select the file to upload, and click the "Go" button.
The Ruby SSH libraries make it possible to do a secure file transfer over SFTP (hint: require 'net/sftp'
). I haven't used it myself, but the docs make it look as easy as FTP. IIRC, SFTP has native support for resuming interrupted transfers.
You could also use a utility like WinSCP, which is an open-source tool that can upload using FTP, SFTP, or SCP. For non-Windows systems, there's Cyberduck for OS X and Kasablanka or gFTP for Linux.