使用Paperclip和Rails,Google Cloud Storage请求速度很慢

我有一个Rails应用程序,它使用Google云端存储来存储图像。 每个视图大约有8个图像,当用户尝试加载页面时,由于对GCS的请求,完成所需的时间超过5秒。

Paperclip通过以下配置发出请求:

config.paperclip_defaults = { storage: :fog, fog_credentials: { google_storage_access_key_id: myAccessKey, google_storage_secret_access_key: mySecretKey, provider: 'Google' }, fog_public: true, fog_directory: 'mybucket' } 

在我看来,我用这种方式调用每个图像:

  

有没有更快的方法来实现相同的结果?

懒惰负载在我看来是一个解决方法而不是解决方案,我错了吗?

这里New Relic臭名昭着的分析(绿色属于谷歌云存储请求)

在此处输入图像描述

是每次从后端拉出的给定请求的图像? 如果是这样,请为图像使用缓存,这样您只需花费第一个请求的时间。 甚至可能在用户auth的延迟加载后开始将图像拉入缓存,就像你建议的那样。

我不能说这样可以解决所有问题,但至少可以加快速度。

fog_host似乎避免了网络请求。

 # config/application.rb module Parasite class Application < Rails::Application config.paperclip_defaults = { fog_host: 'http://mybucektname.storage.googleapis.com', # ... other options } end end 

如果你想挖掘更多,请检查我在Paperclip Github页面上打开的代码或此线程。