Ruby on rails 轨道&x2B;Heroku上的回形针非常慢
我使用Heroku+AmazonS3+回形针gem组合上传文件。它正在工作,但上传本身非常慢 我尝试购买额外的dyno,并对模型进行了一点更新:Ruby on rails 轨道&x2B;Heroku上的回形针非常慢,ruby-on-rails,ruby,heroku,amazon-s3,paperclip,Ruby On Rails,Ruby,Heroku,Amazon S3,Paperclip,我使用Heroku+AmazonS3+回形针gem组合上传文件。它正在工作,但上传本身非常慢 我尝试购买额外的dyno,并对模型进行了一点更新: class Image < ActiveRecord::Base belongs_to :imageable, :polymorphic => true belongs_to :user belongs_to :album attr_accessible :caption, :title, :image, :image_
class Image < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
belongs_to :user
belongs_to :album
attr_accessible :caption, :title, :image, :image_file_name, :user_id, :album_id
has_attached_file :image,
:styles => { :tiny => '100x100>',
:original => "900x900>" },
:path => ":rails_root/public/images/:user_id/:style/:basename.:extension",
:url => ":s3_eu_url"
process_in_background :image
end
类映像true
属于:用户
属于:相册
属性可访问:标题、标题、图像、图像文件名、用户id、相册id
已附加文件:图像,
:styles=>{:tiny=>'100x100>',
:original=>“900x900>”},
:path=>“:rails\u root/public/images/:user\u id/:style/:basename.:extension”,
:url=>“:s3\u eu\u url”
处理背景中的图像:图像
结束
这在Heroku上运行得非常快,但是:我选择了一个要上传的文件,点击上传按钮,几秒钟内页面就会刷新。我没有看到上传的图片本身,因为还没有上传。但后台进程将上传它。
当我在2-4秒后刷新页面时,我可以正确地看到上传的图像
但这不是一种非常方便用户的方法。
如何使用回形针和延迟作业快速将图像上传到Heroku?我缺少什么来正确设置它
感谢尝试一款名为it的新Gem,它允许您使用html表单将文件直接上传到S3,并轻松将图像处理转移到后台处理从用户角度来看,您将无法避免从完成从pc上传到完成处理(和/或复制到S3)所需的时间 您所能做的最好的事情是改进您的用户体验,但要么显示文件尚未完成处理的消息,然后要求用户返回并稍后重试 也就是说,您可以直接上传到s3(但不需要回形针,因为这是您的处理器,并且您需要heroku服务器(或任何其他服务器)上的imagemagick来处理您的样式 看到这个了吗 及 如果只需向用户发送一条消息就可以解决您的原始问题(即提高用户友好性),那么您自己处理这一切可能会非常痛苦。1)如果您的应用程序可能,您可以将s3存储桶位置更改为US East,作为附加解决方案。它不会完全解决这个问题,但会提高上传速度
2) 您可以使用s3_direct_upload直接上传到s3 最近我更喜欢做即时图像处理。很多时候,我使用回形针只是为了在重新设计过程中改变前端需求,迫使我在批处理作业中重新处理所有UG图像 我创建了一个适用于rails的简单gem,让您代理用户上传的图像,并通过更改url参数按需处理它们: 它接受与您在曲别针中的:styles散列中提供的相同类型的几何体字符串。它相对较新,但也很简单,我正在生产中使用它。也欢迎捐款 用法:
<%= $your_cdn_base_uri + processed_image_uri_for( "http://mybucket.s3.amazonaws.com/path/to/img.jpg", '100x100>' ) %>
Research直接上传到s3