Amazon s3 回形针S3图像路径问题
我刚刚从Rails 3.1升级到Rails 3.2.6,我的回形针照片路径现在已经在生产中中断Amazon s3 回形针S3图像路径问题,amazon-s3,paperclip,ruby-on-rails-3.2,Amazon S3,Paperclip,Ruby On Rails 3.2,我刚刚从Rails 3.1升级到Rails 3.2.6,我的回形针照片路径现在已经在生产中中断 photo.rb if Rails.env == "production" has_attached_file :image, :storage => :s3, :s3_credentials => S3_CREDENTIALS, :url => "/app/public/system/images/:id/:style/:basename.:extens
photo.rb
if Rails.env == "production"
has_attached_file :image,
:storage => :s3,
:s3_credentials => S3_CREDENTIALS,
:url => "/app/public/system/images/:id/:style/:basename.:extension",
我需要这样的结果路径:http://s3.amazonaws.com/photoramblr/app/public/system/images/5/thumb_large/image.jpg
但是,上述url设置会导致:http://s3.amazonaws.com/photoramblr/app/public/app/public/system/images/5/thumb_large/image.jpg
我还尝试将回形针url设置为:url=>“/system/images/:id/:style/:basename.:extension”
,但结果是该url:http://s3.amazonaws.com/photoramblr/images/5/thumb_large/image.jpg
有没有关于如何正确设置的想法
更新:我仍然不明白它是如何工作的,但我只是通过将文件移动到它正在查找的位置来“修复”这个问题。尝试添加一个path参数来替换url参数,并在bucket名称下指定存储文件的路径,url将根据bucket和提供的路径构建。这里有一个链接,以获取更多详细信息。如果您提供一个url参数,它将相对于您的“app/public”进行处理。这就解释了为什么生成的图像路径加倍为“app/public”。Ryan Bate也解释了这种行为。 在您的情况下,您的代码如下所示
if Rails.env.production?
has_attached_file :image,
:storage => :s3,
:s3_credentials => S3_CREDENTIALS,
:path => "app/public/system/images/:id/:style/:basename.:extension",
您得到的链接将是(我假设您的bucket名称是链接中的photorambler);s3.amazonaws.com/photorambler/app/public/system/images/5/thumb_large/image.jpg尝试添加一个path参数来替换url参数,并在bucket名称下指定存储文件的路径,url将根据bucket和提供的路径构建。这里有一个链接,以获取更多详细信息。如果您提供一个url参数,它将相对于您的“app/public”进行处理。这就解释了为什么生成的图像路径加倍为“app/public”。Ryan Bate也解释了这种行为。 在您的情况下,您的代码如下所示
if Rails.env.production?
has_attached_file :image,
:storage => :s3,
:s3_credentials => S3_CREDENTIALS,
:path => "app/public/system/images/:id/:style/:basename.:extension",
您得到的链接将是(我假设您的bucket名称是链接中的photorambler);s3.amazonaws.com/photorambler/app/public/system/images/5/thumb_large/image.jpg