使用paperclip和fog-google

时间:2016-03-30 01:16:50

标签: ruby-on-rails paperclip google-cloud-storage fog

在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

0 个答案:

没有答案