如何使用Carrierwave和Fog检查S3上是否存在图像版本?

时间:2014-05-10 07:40:22

标签: ruby-on-rails amazon-s3 carrierwave fog

我使用Carrierwave和Fog将我的图像上传到S3。在上传时,我还创建了图像的缩略图版本:

version :thumb do
  process :resize_to_limit => [90, 80], if: :is_resizable?
end

现在我需要一种方法来检查缩略图版本是否存在。

Documentation列出了exists?方法。如果我想检查原始版本是否存在,这实际上是有效的:

asset.file.exists? # => true

但是当我使用"拇指"像这样的版本:

asset.url(:thumb).file.exists?

它得到:

undefined method 'exists?' for #<String:0x007fcd9f9d9620>

2 个答案:

答案 0 :(得分:18)

使用此:

asset.thumb.file.exists?

代替:asset.url(:thumb).file.exists?

答案 1 :(得分:2)

正确答案是:

asset.file.thumb.file.exists?

其中file = mounted_uploader和asset = model