How to directly upload files to Amazon S3 from your client side web app
codeartists.com
codeartists.com
On the AWS forums it was clear that AWS was aware of this consistent problem, but was not able to fix it, and not willing to document it.
They eventually released "multipart upload", which remains the only reliable way to get large files to S3. Unfortunately, multipart upload is nearly impossible to implement as a web app (short of resorting to e.g. Java).
You could, however, perform a traditional POST.
I am right now writing a library to do just that. I already have a prototype working, and we'll probably open source our library once it's reasonably tested. But perhaps you know something I dont... is there anything in particular that makes it "nearly impossible"?
My bad experience with files disappearing was entirely with web-based POST requests, ~2 years ago. Large file transfer from EC2 to S3 was reliable, but our POST requests on slower connections (even those that were very reliable) would return with a false report of success.
filepicker.store(myFile, {location: "S3"}, function(FPFile){console.log("File stored in S3 at "+FPFile.key+" and available at "+FPFile.url);});
This post was intended for the people who want to have a specific and stand-alone building block just for S3.
overall as someone who is currently using filepicker, i would recommend people avoid it if all you want to do is upload to files to your own bucket without any transformations like image resizing
Filepicker is awesome.
At my job I just had to implement direct to s3 uploads, and filepicker cut down the work by 10x. It's basically a one line implementation to save the contents of a file input to s3. That's awesome.
The pricing is extremely liberal, and the docs are good. I haven't used many of the more advanced features, but even at its simplest form it's an excellent tool.
As for the complaints here, they seem to be mostly pedantic - I would much rather concat a few strings to build the proper s3 URL when the alternative is building the whole upload infrastructure, and once again, that's without considering all the advanced features filepicker gives you.
Just with their image manipulations were a bit more fully featured, like imagemagic
Feel free to use CoffeeScript to implement your libraries, but lets just call it a JavaScript library and assume everyone who uses CoffeeScript will understand they can use any JavaScript library.
When having to choose between a library written in JavaScript and a library written in CoffeeScript I choose the latter, because it statistically has a probability to be a better library, just because the coder didn't have a chance to use bad JavaScript practices, when writing it. Assuming I usually don't have time to read the code of the libraries I'm using.
I'm pretty new at git/github, but understand that the solution may involve a post commit hook that somehow calls an S3 file upload service.
It doesn't do delta updates, which could be a problem depending on the kind of project, though.
(My development workflow/environment is completely decoupled from any servers I control: I use Parse.com as my backend with static HTML pages served from S3, and cloud9 as my IDE, with Github as my source host)
guessing #2 isn't possible?