4

我正在通过 jquery_file_upload 上传图片(Railscast 第 383 集)上传工作完美,我在回调函数中获得了 url

问题是:我想在直接上传到s3后创建一些缩略图

为此我假设:

  1. 服务器必须从 s3 读取图像
  2. 服务器必须创建缩略图
  3. 服务器必须将缩略图直接存储在 s3
  4. 服务器必须获得回调并相应地显示缩略图。
  5. 服务器必须存储创建的缩略图的字段

现在,在图像上传完成后调用图像控制器回调:

def create
 #get the url from the callbcack
 #e.g: image[image_source] = https://<BUCKET>.s3.amazonaws.com/uploads/myimage.png
 @image = Image.new(params[:image])
 @image.user_id = current_user.id
 @image.save
end

和模型:

class Image < ActiveRecord::Base
  attr_accessible :image_thumb, :user_id, :width ,:album_type_id 
  after_save :enqueue_image

  mount_uploader :image_thumb, ImageUploader

  def enqueue_image
   #checking if i have the original image
   if self.image_source present?
    #what to do here?
    #how can i call the carrierwave function to create the thumbnails?
    #how to send the thumbnails directly to s3 with callback name?
   end

  end
end
4

1 回答 1

0

上传是否一定需要创建缩略图?如果没有,我认为您可以在初始上传期间使用version. 例子:

 class ImageUploader < CarrierWave::Uploader::Base
    version :thumb do
     process :resize_to_fill => [50, 50]
    end
 end
于 2012-10-07T14:38:24.607 回答