I’d like to be able to upload a zip file to my Rails application that contains a number of images. Then I’d like Rails to unzip that file and attach the images inside to my Photo’s model via Paperclip, so that they are ultimately stored on my Amazon S3 account (configured through Paperclip).
I’d like do do this all on my Rails site hosted on Heroku, which unfortunately doesn’t allow local storage of any kind (so far as I’m aware) to temporarily do the unzipping before the Paperclip parsing.
How would I do this??
I would recommend uploading directly to S3 which bypasses Heroku entirely so you’re not restricted to the 30 second request timeout they enforce (which drops your uploads after that time is hit) or the 1gb
/tmpdirectory limit. After the file is uploaded, you can make a POST to your Rails app with the file’s name and location and then do your unzipping operation. If you’d like to use Paperclip for post-processing, I have attached a link below. If you end up going the route of uploading directly to S3 which offloads the work from your Rails server, please check out my sample projects:Sample project using Rails 3, Flash and MooTools-based FancyUploader to upload directly to S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader
Sample project using Rails 3, Flash/Silverlight/GoogleGears/BrowserPlus and jQuery-based Plupload to upload directly to S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload
Here is the link for the Paperclip post processing for an example like images:
http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip