2
我在Heroku上有一個應用程序,我使用Amazon S3存儲圖像。我已經使用了我所知道的所有Cache技術,但似乎圖像加載速度太慢,並且推遲了一些用戶。遠程或直接爲亞馬遜S3提供圖像 - 蜻蜓寶石
目前用戶獲得
/media/W1siZiIsIjIwMTQvMDIvMjEvMjMvMjAvMDQvNTY1L01pa2VfOTIzMi5qcGciXV0/Mike_150.jpg?sha=d8993be2
根據instructions一個必須使用
Dragonfly.app.remote_url_for(uid)
,他們將得到
http://my-bucket.s3.amazonaws.com/2011/04/01/03/03/05/243/file.jpg
然而,當我加入這行,什麼都不會發生。
#require 'dragonfly/s3_data_store'
require 'dragonfly'
# Configure
Dragonfly.app.configure do
plugin :imagemagick
protect_from_dos_attacks true
secret "2558d89a83f18f6da793e3b6dccc888c17642563e9ddedf456356f4c2d79"
url_format '/media/:job/:name'
response_header 'Cache-Control', 'public, max-age=3600' # You can set custom response headers
response_header 'Cache-Control' do |job, request, headers| # either directly or with a block
job.image? ? "public, max-age=10000000" : "private" # setting to nil removes the header
end
allow_legacy_urls true
if Rails.env.test? || Rails.env.development?
datastore :file,
root_path: Rails.root.join('public/system/dragonfly', Rails.env),
server_root: Rails.root.join('public')
else
datastore :s3,
bucket_name: ENV['S3_BUCKET_NAME'],
access_key_id: ENV['S3_KEY'],
secret_access_key: ENV['S3_SECRET'],
url_scheme: 'http',
url_host: 'mybucket.s3.amazonaws.com'
end
end
# Logger
Dragonfly.logger = Rails.logger
Dragonfly.app.remote_url_for(uid)
# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware
# Add model functionality
if defined?(ActiveRecord::Base)
ActiveRecord::Base.extend Dragonfly::Model
ActiveRecord::Base.extend Dragonfly::Model::Validations
end
- 我到底做錯了什麼?
- 服務文件遠程URL是否改變應用性能?
還引用是你能解決這個問題? –
可悲的是我一直無法解決它。但我添加了一個驗證,要求用戶添加更小的圖像大小。在另一個應用程序中,我決定從蜻蜓寶石移開並使用載波寶石。我必須說這是一個更好的選擇。寶石'carrierwave' 寶石'cloudinary' – Benjamin