Carrierwave processed images not uploading to S3

拟墨画扇 提交于 2019-12-08 09:39:23

问题


I have Carrierwave uploading images just fine to S3 buckets. However if I use RMagick to process thumbnails, the files only get saved to public tmp locally. Commenting out the process method creates the original and thumb files on S3 (of course the thumb is not processed). Not sure why the processing is stopping right after writing to local tmp. Code below:

class FileUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  storage :fog

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  # Create different versions of your uploaded files:
  version :thumb do
    process :resize_to_fit => [32, 32]
  end
end

Rails 3.2.5 Fog 1.3.1 Rmagick 2.13.1 Carrierwave 0.6.2 Carrierwave-mongoid 0.2.1


回答1:


I recommend you use minimagick:

class FileUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
end

For thumb version I recommend you that you use resize_to_fill method like sth:

version :thumb do
   process :resize_to_fill => [32, 32]
   process :convert => :png
 end

you can also use a unique token for each image:

def filename
     @name ||= "#{secure_token}.#{file.extension}" if original_filename.present?
   end

  protected
  def secure_token
    var = :"@#{mounted_as}_secure_token"
    model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
  end

you must ensure that your connection with your bucket is correct in the confidential file config/initializers/fog.rb sth like:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => 'your_key',
    :aws_secret_access_key  => 'your_secret_key',
    :region                 => 'us-east-1'
  }

  config.fog_directory = 'your_bucket_here'
  config.fog_public = true
  config.fog_attributes = {'Cache-Control' => 'max-age=315576000'} 
end


来源:https://stackoverflow.com/questions/11069411/carrierwave-processed-images-not-uploading-to-s3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!