【问题标题】:Paperclip is missing the Protocol (https) with Amazon S3Paperclip 缺少 Amazon S3 的协议 (https)
【发布时间】:2017-05-20 21:38:58
【问题描述】:

在生产中.rb:

config.paperclip_defaults = {
    s3_host_name: "s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com",
    storage: :s3,
    s3_credentials: {
        bucket: ENV.fetch('S3_BUCKET_NAME'),
        access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
        secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
        s3_region: ENV.fetch('AWS_REGION'),
    }
}

我在初始化程序/paperclip.rb 中没有任何内容。

在我的模型中:

class MyModel < ApplicationRecord
  has_attached_file :photo, styles: {
      thumb: '100x100>',
      square: '200x200#',
      medium: '300x300>'
  }
  validates_attachment_content_type :photo, content_type: /\Aimage\/.*\Z/
  def photo_url=(url)
    self.photo = URI.parse(url)
  end
end

然后我测试一下:

m = Model.new
m.photo_url = "https://s3.us-east-2.amazonaws.com/mybucket/sports-grill-miami.jpg"
m.save!
m.photo.url(:thumb)
"//s3.us-east-2.amazonaws.com/mybucket/buckets/photos/000/000/005/thumb/sports-grill-miami.jpg?1495237443" 

为什么缺少 HTTPS 协议?这使我的 android 应用程序崩溃,因为它需要一个协议来连接到 URL。我需要对 URL 进行硬编码还是 Paperclip 可以处理这个?

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

    您需要将协议显式添加到您的配置中:

    :s3_protocol => :https
    

    【讨论】:

    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 这确实提供了问题的答案,无论是否扩展,我都发布了答案。
    【解决方案2】:

    您需要在paperclip配置中指定方案如下:

    config.paperclip_defaults = {
          s3_host_name: "s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com",
          storage: :s3,
          :s3_protocol => :https, # <- added this
          s3_credentials: {
              bucket: ENV.fetch('S3_BUCKET_NAME'),
              access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
              secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
              s3_region: ENV.fetch('AWS_REGION'),
          }
      }
    

    :s3_protocol =&gt; :https 会将方案 https 分配给为您的 amazon s3 资产生成的 url。详情请参阅documentation

    【讨论】:

      猜你喜欢
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多