在Rails 4应用程序中,我使用Paperclip和fog-google gem将图片存储在我的Google Cloud Storage存储桶中。一切都适用于文件上传。问题是,当我检索一堆要显示的照片时,速度非常慢。请求需要的时间比他们应该的要长。我相信问题是雾正在验证每个请求,因此检索一堆文件需要很长时间。在我的开发环境中,事情非常活泼,因为图片存储在本地。只有在生产中,请求才真正缓慢。 Google存储区中存储文件的网址是公开的,因此我想知道是否有告诉雾不要对GET请求进行身份验证。有谁知道我怎么能这样做,以便文件的每一个请求都没有被认证?
#config/environments/production.rb
Rails.application.configure do
config.paperclip_defaults = {
storage: :fog,
fog_credentials: {
google_storage_access_key_id: ENV.fetch('GOOGLE_STORAGE_ID'),
google_storage_secret_access_key: ENV.fetch('GOOGLE_STORAGE_SECRET'),
provider: 'Google' },
fog_directory: '<bucket name>' }
end
#app/models/item.rb
class Item < ActiveRecord::Base
has_attached_file :image
end
#migration
class AddAttachmentImageToItems < ActiveRecord::Migration
def self.up
change_table :sitems do |t|
t.attachment :image
end
end
def self.down
remove_attachment :items, :image
end
end