2012-02-15 36 views
3

使用Rails 3.2.1和Paperclip 2.6Rails/Paperclip:如何顯示來自S3的具有authenticated_read權限的圖像?

我有Paperclip設置爲使用s3作爲存儲。我想用:s3_permissions => :authenticated_read

回形針更新爲使用aws-sdk之前,我使用了paperclip-aws gem,它爲驗證訪問提供了一個幫助器。

回形針是否提供類似的幫手?如果在缺少paperclip-aws寶石的情況下設置爲authenticated_read,我如何通過image_tag訪問圖像?

回答

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。

+0

謝謝!順便說一下,在配置示例中,在':authenticated_read'後面缺少一個逗號。 – Clay 2012-02-16 15:48:00

+0

我其實有一個問題,因爲它不默認回形針':default_url'來顯示丟失的圖像。它只是返回零。我必須編寫一個幫助器方法來檢查':expiring_url'是否返回nil,如果是,則使用常規url方法。這可能是一個回形針的錯誤。 – Clay 2012-02-17 19:33:19