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 に答える