views:

416

answers:

3

I am in the design phase of a file upload service that allows users to upload very large zip files to our server as well as updates our database with the data. Since the files are large (About 300mb) we want to allow the user to limit the amount of bandwidth they want to use for uploading. They should also be able to pause and resume the transfer, and it should recover from a system reboot. The user also needs to be authenticated in our MSSQL database to ensure that they have permission to upload the file and make changes to our database.

My question is, what is the best technology to do this? We would like to minimize the amount of development required, but the only thing that I can think of now that would allow us to do this would be to create a client and server app from scratch in something like python, java or c#. Is there an existing technology available that will allow us to do this?

+4  A: 

What's wrong with FTP? The protocol supports reusability and there are lots and lots of clients.

pjc50
Once the data is uploaded to the server we would need to execute a script of some form that would add a row in a DB table, can ftp execute shell commands on the server?
Adam Richardson
If you need something executed after upload, you could implement the ftp server as part of your application in whatever language you like. Python has ftplib. Alternatively, you could watch the upload directory for file events to trigger you scripts.
JimB
A: 

On client side, flash; On server side, whatever (it wouldn't make any difference).

No existing technologies (except for using FTP or something).

alamar
+4  A: 

There are quite a few upload controls for this you should be able to Google. There are a few on this download page.

Another work around is to have your clients install a Firefox FTP plugin or write a Firefox plugin yourself but FTP is by far the easiest way to boot.

aleemb
This comment lead me to find the pyftpdlib module which seems to allow us extend a ftp server to do all kinds of things. http://code.google.com/p/pyftpdlib/
Adam Richardson