views:

3232

answers:

7

Relating to this question, http://stackoverflow.com/questions/117810/upload-files-directly-to-amazon-s3-from-asp-net-application, is there any way to do this and have a progress bar?

---- EDIT ----

Two days later and still no luck with a direct way. Found one thing that looks promising but not free: http://www.flajaxian.com/

Uses flash to upload directly to S3 with a progress bar.

+2  A: 

I'm looking for a solution as well. Maybe this will be of some help,

From AWS Dev Commnity But in many languages (PHP, Java), for big files, you have to use streams through which the language environment will take chunks of your big file one after the other (in order to fill up central memory with huge amount of data for the http POST of S3 needed for the upload.

The nice thing about stream is that they have a callback called whenever the next chunk is read for to further PUT (in the https sense) data to S3. You can use this callback to compute and display the progress on the client UI.

See the doc of libcurl to see in details how all this works.


Update: It looks like there are two straightforward options.

  1. Flash, via the FileReference class
  2. With a Java applet

I personally hate using 3rd party extensions (Flash, Java) to make an app function, but I haven't found another way.

Blaine
+1  A: 

http://code.google.com/p/swfupload/

I am not sure if this will work but, its worth a try.

Suku
+1  A: 

Yea, this is what we use in s3fm. Check out the upload progress dialog ;)

+1  A: 

If you are using rails check my post here: http://www.railstoolkit.com/posts/uploading-files-directly-to-amazon-s3-using-fancyupload

A: 

Another approach is to use something like Uber Uploader (http://uber-uploader.sourceforge.net/) which is a perl / php hybrid solution with a progress bar. You would simply upload the files to your server and then have your server FTP them in the background to the final destination. It is an extra step but it gives you some time to do any processing / encoding / etc. that you may need to do before sending to S3.

phirschybar
A: 

There's a Silverlight option that works well but it's not free. It takes a bit of work because you need to setup a service to do the signing for you, but they provide the code to do it. Overall it works very well:

http://www.parentelement.com/products/slights3

Allen
+1  A: 

Try JS3Upload. It's an applet that allows uploading to any S3 bucket with progress bar. It works under Windows, MacOSX and Linux. http://www.jfileupload.com/products/js3upload/index.html

fileuploader