使用Paperclip将上传文件定向到S3

所以我用uploadify设置了回形针,将内容上传到S3。 我已经进行了设置,以便将内容直接加载到S3,然后在完成后我将结果发布到我的网络服务器…

我得到的只是文件名和大小。 我应该构建自己的处理器或before_post_process方法从S3“下载”文件以进行处理吗? 或者我错过了什么,uploadify应该在发布到S3之后为我提供了一个包含文件的流?

你们如何直接上传到S3,然后通知你的回形针支持的模型? 你是否必须从服务器中提取文件并对它们进行后处理或者回形针处理所有这些?

这里有一些博客文章描述了如何做到这一点……

http://www.railstoolkit.com/posts/uploading-files-directly-to-amazon-s3-using-fancyupload

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

他们使用FancyUploader(使用MooTools / Flash)直接上传到S3,绕过Heroku及其可怕的30秒请求超时,然后使用DelayedJob排队后处理任务,如缩略图和PaperClip来进行实际处理文件。

如果我可以使用CarrierWave,我将在GitHub上发布一个项目进行分享(一旦我有时间,一周左右)

更新

使用Rails 3,Flash和基于MooTools的FancyUploader直接上传到S3的示例项目: https : //github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

使用Rails 3,Flash / Silverlight / GoogleGears / BrowserPlus和基于jQuery的Plupload的示例项目直接上传到S3: https : //github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

我有时间后会添加后处理示例。

您可以创建处理器或使用回调方法,但在转到S3之前,文件最终会在您的服务器上。

例如,如果您使用回调方法,则可以使用以下方法访问它:

 self.file.to_file 

完成后,处理和上传文件将从您的服务器中删除。 您无需做任何事情来通知或发布流程。 Paperclip将处理它。