所以我用uploadify设置了回形针,将内容上传到S3。我已经进行了设置,以便将内容直接加载到S3,然后在完成后我将结果发布到我的网络服务器......
我得到的全部是文件名和大小。我应该构建自己的处理器或before_post_process方法从S3“下载”该文件以进行处理吗?或者我错过了什么内容,在发布到S3之后,uploadify应该为我提供了一个包含文件的流?
你们如何直接上传到S3然后通知回形针支持的模型?你是否必须从服务器中提取文件并对它们进行后处理或者回形针处理所有这些?
答案 0 :(得分:8)
以下是几篇描述如何操作的博客文章......
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
我会在有空的时候添加后处理示例。
答案 1 :(得分:0)
您可以创建处理器或使用回调方法,但在转到S3之前,该文件最终会在您的服务器上。
例如,如果您使用回调方法,则可以使用以下内容访问它:
self.file.to_file
完成后,处理和上传文件将从您的服务器中删除。您无需做任何事情来通知或发布流程。 Paperclip将处理它。