Paperclip与Heroku搭配使用Amazon S3设置

3

has_attached_file :image, :storage => :s3, :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", :path => "/:style/:filename"

我不确定:path => "/:style/:filename"是什么意思。

我还想为这个附加的图像包括样式,这就是:path的作用吗? 我想要的样式是这样的::styles => { :medium => "275x275>", :thumb => "175x155>" }

基本上这里正在设置heroku,我必须使用S3,这似乎很简单,只是不习惯这种附件约定。

另外,我刚刚注册了一个S3帐户...但是heroku声称它是免费的或者类似于这样的话。 这是怎么回事?

2个回答

9

'路径'指定了文件将在S3上存储的位置。因此,如果您将附件设置为:

 has_attached_file :image, 
    :styles => { :medium => "275x275>", :thumb => "175x155>" },
    :storage => :s3, :s3_credentials => "#{RAILS_ROOT}/config/amazon_s3.yml",
    :path => "user/:attachment/:style/:id.:extension"

一个示例URL将是:

http://s3.amazonaws.com/bucket/user/image/thumb/347853856.jpg

最后,S3不是免费的(Heroku仅说明传输/上传不包括在基于使用量的计算中)。如果您需要更多信息,Heroku的文档是非常好的。

Kevin:Paperclip在Heroku上上传文件时,是否仍需要先写入本地文件系统?例如,对于处理后的图像,文件是否首先传输到Heroku dyno,然后再传输到S3?或者Paperclip能否直接绕过Heroku,直接上传至S3? - iwasrobbed
@iWasRobbed:Paperclip 将在您的 Rails 应用程序中运行,因此将在 Heroku 上运行。在这种情况下,文件将首先通过 Heroku 运行。 - Kevin Sylvestre

4
请注意,在Rails 3.1及以上版本中,应该使用Rails.root而不是RAILS_ROOT。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接