加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 最好的Ruby on Rails Architecture for Image

发布时间:2020-12-16 20:11:51 所属栏目:百科 来源:网络整理
导读:我正在构建一个允许一次上传大量照片的应用程序,并希望知道最好的设置是如何解决的. 这是我到目前为止使用的 Jquery文件上传:允许用户拖放图像 CarrierWave:使用ImageMagick处理图像并调整大小 Amazon S3:CarrierWave通过雾上传图像到Amazon S3 Heroku:
我正在构建一个允许一次上传大量照片的应用程序,并希望知道最好的设置是如何解决的.

这是我到目前为止使用的

> Jquery文件上传:允许用户拖放图像
> CarrierWave:使用ImageMagick处理图像并调整大小
> Amazon S3:CarrierWave通过雾上传图像到Amazon S3
> Heroku:主办

我想允许用户能够将大量图像拖放到页面上,然后在后台进行上传时导航到其他页面.我也喜欢在完成上传时出现图片.我不希望这个过程锁定Heroku的动力,所以我可能需要把工作转移到后台工作,但我不知道该怎么用于我的情况.

什么是这种类型的应用程序的最佳设置?我应该使用什么背景工作宝石?是否是一个好主意?

解决方法

我最近构建了一个在Heroku上接受大量上传的应用程序.我决定建立自己的解决方案,而不是使用云计算或等价物.这里有一些我学到的经验教训:

>不要上传到heroku.您的整个网络工作者将在整个上传期间被锁定.那是一分钟不能接受的.
>使用javascript上传器(如jquery-file-upload)直接上传到s3.这首先有点复杂,但一旦你得到它的工作,它是太棒了.您可以使用s3_direct_upload宝石,或者您可以阅读其来源,从头开始制作自己的解决方案.那颗宝石是基于railscasts pro集,你必须支付,但有source available.
>上传完成后,向您的应用发出一个ajax请求,通过新的s3网址作为remote url. Carrierwave将像s3一样处理像上传的图像,只有几秒钟,而不是一分钟.
>使用jquery-file-upload的client-side image resizing.有人会尝试上传一张5MB的照片,然后踩上上传将永远.这将使所有上传速度在理论上尽可能快.
>配置s3到clear your uploads folder automatically.
>不要用薄.使用unicorn.几秒钟太长,无法处理薄的请求,但是三到四个工人的独角兽更加宽容.
>不要使用rmagick.这是一个更好的API复杂的图像处理,但使用惊人的内存量.改用mini_magick.

你会注意到,我没有使用任何后台工作者.如果你真的很细心,你可以让接收到远程URL的控制器将其工作传递给后台工作人员,如果你立即需要结果,后台工作人员可以通过pubsub通知用户界面(faye或者push,可能是令人兴奋的sync宝石).但是这对于我的应用程序来说并不是必需的,我宁愿把钱花在另一个网络动画上,而不是一个工人的动力.

而且,是的,如果您希望让他们点击您的整个应用程序,那么您将需要在弹出窗口中上传(并使用某种pubsub解决方案),或将整个网站构建为javascript应用程序使用ember或骨干或角度或任何.

任何问题?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读