【问题标题】:How to manage a large number of images in a Rails app?如何在 Rails 应用程序中管理大量图像?
【发布时间】:2019-10-03 11:02:23
【问题描述】:
我必须在我的应用中管理大约 200 张高质量图片。我目前正在使用 Cloudinary 来存储这些图像。
但我发现许多应用程序使用不同的域名来存储图像和其他资产(例如:“assets.example.com”)。如果我目前了解这在 Rails 应用程序中称为asset_host。我找到了关于它是什么的文档,但关于如何设置它或如何提供文件的文档并不多。
他们是怎么做这样的事情的?他们是否支付了其他域名/服务器并仅使用该服务器来存储资产?
【问题讨论】:
标签:
ruby-on-rails
assets
amazon-cloudfront
cloudinary
【解决方案1】:
200 张图像并不多,即使是 100Mb/图像(原始+缩小的变体),它也只有 20Gb 的存储空间,在中等负载下,一台服务器可以轻松处理,无需任何云、额外的域等。而且由于您是已经将它们存储在云存储中 - 您不必担心。
asset_host 用于资产管道(您的 css/js/images 来自 app/assets,最终位于 public/assets),而不是应用的托管数据
在过去,资产由其他主机提供以绕过浏览器中的连接数限制(以便可以并行下载资产并更快地加载站点),这与现代 HTTP/2 无关(甚至相反- 建立额外的 http 连接会产生开销),除非您的负载非常高或有特定需求(例如 - 在容器中部署时,单独存储资产可能很有用)。
第二个好处是浏览器不会将应用程序的cookies发送到其他主机,这样可以节省一点带宽。
许多站点设置该域以由同一物理 Web 服务器处理
至于支付域名-assets.example.com是example.com的三级域名,如果您已经拥有后者-您也拥有它,只需要设置A(可选AAAA) DNS 记录和服务器。