0

我可以使用 Paperclip 上传图像,并且可以在 Amazon 的 S3 管理控制台网站上的存储桶中看到它们,但是 Paperclip 提供的 url(例如 image.url(:thumb))不能用于访问图像。我得到一个看起来像这样的网址:

http://s3.amazonaws.com/xxx/xxx/images/000/000/012/thumb/image.jpg?1366900621

当我将该 URL 放入浏览器时,我被发送到一个 XML 页面,该页面指出:“您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有未来的请求发送到此端点。”

其中“端点”是回形针路径的子域。但是当我去那个“端点”时,我只是得到另一个错误,上面写着“拒绝访问”。然而,根据亚马逊网站提供的文件信息,该图像是公开可见的。有人可以告诉我我做错了什么吗?

我的 development.rb 文件只包含以下内容:

  config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => AWS_BUCKET,
      :access_key_id => AWS_ACCESS_KEY_ID,
      :secret_access_key => AWS_SECRET_ACCESS_KEY
    }
  }
4

1 回答 1

2

我通过更改 :url 的默认值让它工作

# config/initializers/paperclip.rb 
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'

我在美国国内,但似乎这仍然是我的代码工作所必需的(参见https://devcenter.heroku.com/articles/paperclip-s3

于 2013-04-26T20:10:55.030 回答