通过Cloudfront提供Dragonfly图像时,“您需要提供SHA参数”错误

时间:2015-06-17 02:04:35

标签: ruby-on-rails amazon-cloudfront dragonfly-gem

我已使用dragonfly gem在我的Rails应用中成功安装和上传了图片。如果我直接通过应用程序加载图像,加载图像工作正常。但是,如果我通过Cloudfront加载图像,我会得到一个错误页面,上面写着“你需要提供一个SHA参数”这很奇怪,因为SHA已经包含在URL中了:

enter image description here

上下文是我的蜻蜓设置:

# config/initializers/dragonfly.rb

require 'dragonfly'

# Configure
Dragonfly.app.configure do
  plugin :imagemagick

  secret "randomsecret"

  url_format "/media/:job/:name"

  datastore :file,
    root_path: Rails.root.join('public/system/dragonfly', Rails.env),
    server_root: Rails.root.join('public')
end

# Logger
Dragonfly.logger = Rails.logger

# 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

我已经阅读了CDN section in the documentation of dragonfly,但它没有解决问题。它唯一的区别是它在调用url_host时包含image.url,而不仅仅是它通常返回的相对路径。

1 个答案:

答案 0 :(得分:3)

默认情况下,CloudFront不会将查询字符串转发到原点。您是否确认已启用query string转发功能?