Rails / Paperclip:如何显示具有authenticated_read权限的S3图像?

时间:2012-02-15 18:31:05

标签: ruby-on-rails amazon-s3 paperclip

使用Rails 3.2.1和Paperclip 2.6

我将Paperclip设置为使用s3作为存储。我想使用:s3_permissions => :authenticated_read

在Paperclip更新为使用aws-sdk之前,我使用了paperclip-aws gem,它为经过身份验证的访问提供了帮助。

Paperclip是否提供了类似的帮助?如果在没有image_tag宝石的情况下将图像设置为authenticated_read,如何通过paperclip-aws访问图像?

1 个答案:

答案 0 :(得分:4)

给定如此配置的附件:

has_attached_file :attachment,
  :storage => :s3,
  :bucket => 'MY-BUCKET',
  :s3_permissions => :authenticated_read,
  :s3_credentials => Rails.root.join("config/aws.yml")

您可以在附件上调用#expiring_url方法:

record.attachment.expiring_url #=> "https..."

这是#expiring_url的签名:

def expiring_url(time = 3600, style_name = default_style)

这允许您覆盖到期时间并指定您想要url的“样式”或版本。