ホスティング レンタルサーバ レンタルサーバー

u n d e r c u t ' s   p u b l i c   d o m a i n
Page Last Updated 03/13/2002

Back to undercut's homepage
How to fast batch upload to FDS
日本語 · articles · fansubs · Nandub_OnePass · WebFServe · MS-MPEG4 · download · email

When you need to upload stuff to Free Disk Space, I think you'll notice using their file transfer applet, that the speed the file gets transfered varies a great deal. It varies quite randomly.

To investigate this, I've turned off the multiple file transfer setting, and examined their signle file upload, which is a regular HTML form. It turns out that FDS will use different IP addresses for the upload, and it does seem to change randomly. And also that some IP were very fast while others were terrible.

So to transfer files to them quickly, what was needed was for user to specify which IP will be used. So let's get to the solutions:

Solution 1: Single Uploads

This solution doesn't require any special software, and allows you to upload one files at a time using their HTML form.

  1. Logon to your FDS account, and turn off multiple file upload. Launch the upload window.
  2. You should have a small window with file upload form. Right click on the window and do Save As, save it somewhere.
  3. Open up the saved HTML file with Notepad. You should see the following line around line 14:
    <form NAME="file_upload_form" ENCTYPE="multipart/form-data" action="http://208.39.14.148:80/upload.asp?site_id=1&folder_id= ....
  4. Change the http://208.39.14.148:80 with the IP that works best for you. You'll need to find out which one works by doing single file upload a few times and noting the IP address used. For me, the one shown here works the best.
  5. Once you change the IP, save it. You can now load up the page from your local hard drive and use it like it was from FDS. When you need to do this again for another session, simply copy & paste everything after the upload.asp? (which contains the session ID) from the FDS's upload page to the page on your hard drive. When an upload gets completed, simply press back and do it again.

Solution 2: Batch Upload

The first solution works great for uploads with small number of files. But what if you had dozens of files that'll take all night. You wouldn't want to sit through it and do it one by one. To do that, we'll need something more advanced. I've created a Perl script that'll take care of this for us. This method is only recommended for uploading large number of files that are less than 15mb each. The script is very inefficient and uses up memory if the files are too large and may crash.

First, what you'll need:

Perl 5 - download from ActiveState. I have tested on Perl 5.6. This script will not work for old version of ActiveState Perl. (I have not tested on other builds)

The script - Unrar and place it somewhere on your hard drive.

Once you've got the software (and rebooted), test the script. Open up a dos prompt at the directory you have the script, and type: perl -cw fdsupload.pl If you downloaded ActiveState's Perl, you should be all right. But if it shows error about modules not found, you'll need to install missing module. The script uses LWP module.

To install LWP module type ppm. Once in the ppm shell, type install LWP. You should now be all set.

We should now configure the script. Open up the fdsupload.pl with notepad, and change some of the variables at the top. They should be self-explanatory. Then to start up the upload, either double click the script or type perl fdsupload.pl. Sit back and see it batch upload to FDS.

You may notice that the script seems to lock, but it's due to the script trying to load the entire file into memory. This cannot be avoided with the LWP module. Only solution is for me to re-write the module to use the Socket directly instead of using the LWP API, and that involves much more coding on my part. (like doing MIME encoding and opening/closing connections, etc. LWP takes care of that)


Copyright © 2000-2003 Undercut.org. All rights reserved.
Managed by Site Compiler