如何在 Rails 应用程序中管理大量图像?

How to manage a large number of images in a Rails app?

我必须在我的应用程序中管理大约 200 张高质量图像。我目前正在使用 Cloudinary 来存储这些图像。

但我看到许多应用程序使用不同的域名来存储图像和其他资产(例如:"assets.example.com")。如果我目前理解,这在 Rails 应用程序中称为 asset_host。我找到了关于它是什么的文档,但关于如何设置它或如何提供文件的文档并不多。

他们是怎么做到的?他们是否支付其他域 name/server 并仅使用此服务器来存储资产?

200 张图像并没有那么多,即使是 100Mb/图像(原始+缩小的变体)它也只有 20Gb 的存储空间,在中等负载下可以很容易地由一台服务器处理,没有任何云、额外的域等。而且因为你'已经将它们存储在云存储中 - 您不必担心。

asset_host 用于资产管道(您的 app/assets 中的 css/js/images 最终在 public/assets 中),而不是应用程序的托管数据

在过去,资产是从其他主机提供的,以绕过浏览器中的连接数限制(以便可以并行下载资产并更快地加载站点),这与现代 HTTP/2 无关(甚至相反 - 建立额外的 http 连接会产生开销),除非你的负载非常高或对此有特定需求(例如 - 在容器中部署时,单独存储资产可能很有用)。

第二个好处是浏览器不会将应用程序的cookies发送给其他主机,这样可以节省一点带宽。 许多站点将域设置为由同一物理 Web 服务器处理

至于为域付费 - assets.example.comexample.com 的 third-level 域,如果您已经拥有后者 - 您也拥有它,只需设置 A(可选 AAAA)DNS 记录和服务器。