Rails 4 x AWS S3:“此内容也应通过HTTPS提供。”

时间:2016-01-06 23:30:51

标签: ruby-on-rails ruby-on-rails-4 amazon-web-services amazon-s3 https

在我的Rails 4应用中,我使用paperclip gem来允许用户上传图片。

图像存储在AWS S3上。

以下是config/environments/production.rb中的配置:

config.paperclip_defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}

在我实施SSL证书之前,这完全正常。

现在我的应用程序 - 生产中 - 使用HTTPS设置,我在控制台中收到以下错误:

Mixed Content: The page at 'https://www.domain.com/' was loaded over HTTPS, but requested an insecure image 'http://s3.amazonaws.com/app/model/images/000/000/003/small_thumb/Profile_Picture.png?1448899439'. This content should also be served over HTTPS.

这不会“破坏”应用程序,但我想让事情正常运行。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

通过将此选项添加到Paperclip选项哈希,告诉Paperclip生成HTTPS URL:

:s3_protocol => :https