1

ペーパークリップと AWS S3 ストレージを使用して画像をアップロードしようとしています

ペーパークリップのデフォルト構成を設定しました

config.paperclip_defaults = {
  :storage => :s3,
  :bucket => '<bucket_name>',
  :s3_credentials => Rails.root.join('config', 'aws.yml').to_s
}

私のモデルでは、これを持っています

as_attached_file :img, :styles => { :medium => "300x300>", :thumbnail => "100x100>" }, :path => "assets/products/:attachment/:id/:style.:extension"

コントローラーでは、モデルが最初に作成され、画像がアップロードされた後、単純なプロパティの更新があります。

def upload_thumbnail
   @product = Product.find(params[:id])

   if @product.update_attribute(:img, params[:image])
    render :json => { :done => true, :img_path => @product.img.url }
   else
    render :json => @product.errors }
   end
end

画像をアップロードすると、コンソールにこのエラーが表示されます

[paperclip] Saving attachments.
[paperclip] saving assets/products/imgs/10/original.jpg
[AWS S3 200 4.134236 3 retries] put_object(:acl=>:public_read,:bucket_name=>"<bucket_name>",:content_length=>0,:content_type=>"image/jpeg",:data=>Paperclip::UploadedFilAdapter: image.jpg,:key=>"assets/products/imgs/10/original.jpg") AWS::Core::Client::NetworkError AWS::Core::Client::NetworkError

S3を見ると、指定したパスに画像が作成され、サイズが0バイトに設定されています。また、プラグインが画像のサイズを変更しようとしているときにこれが発生することに気付きました

[paperclip] Error while determining content type: Cocaine::CommandNotFoundError

ただし、元の画像は正しくアップロードする必要があります。私が間違っていることは何ですか?

4

0 に答える 0