Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if image version exists on S3 with Carrierwave and Fog?

I'm uploading my images with Carrierwave and Fog to S3. On the upload I also create a thumbnail version of the image:

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

Now I need a method to check if thumbnail version exists.

The Documentation lists the exists? method. This actually works, if I want to check the existence of the original version:

asset.file.exists? # => true

But when I use the "thumb" version like this:

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

it get:

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

like image 734
crispychicken Avatar asked May 10 '14 07:05

crispychicken


2 Answers

Use this:

asset.thumb.file.exists?

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

like image 142
crispychicken Avatar answered Nov 17 '22 10:11

crispychicken


The correct answer is:

asset.file.thumb.file.exists?

where file = mounted_uploader and asset = model

like image 20
maricavor Avatar answered Nov 17 '22 11:11

maricavor