Amazon s3 Carrierwave,Minimagick图像上传到S3不工作
我想保存几个版本的图像。所以我正在跟踪和定制,但表单不允许我的图像参数,但我不知道为什么。 我的型号 当我提交图片时,我在这里添加了日志Amazon s3 Carrierwave,Minimagick图像上传到S3不工作,amazon-s3,carrierwave,image-uploading,minimagick,Amazon S3,Carrierwave,Image Uploading,Minimagick,我想保存几个版本的图像。所以我正在跟踪和定制,但表单不允许我的图像参数,但我不知道为什么。 我的型号 当我提交图片时,我在这里添加了日志 Processing by ImgUploadController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"c6z+PUcBk59+ig/SUMcRrkxwFbTcA rKnZCMu0ag0Rmp3JQzvXLWxbQ2SF7f/7VazG8Iwcxy5
Processing by ImgUploadController#create as HTML
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"c6z+PUcBk59+ig/SUMcRrkxwFbTcA
rKnZCMu0ag0Rmp3JQzvXLWxbQ2SF7f/7VazG8Iwcxy5CWQ+nREPVJ10Jw==",
"user_pic"=>[#<ActionDispatch::Http::UploadedFile:0x007facb8033df8
@tempfile=#<Tempfile:/home/ubuntu/workspace/RackMultipart20160106-5826-109snyd.jpg>, @original_filename="yhouse7.jpg",
@content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user_pic[]\"; filename=\"yhouse7.jpg\"\r\nContent-Type: image/jpeg\r\n">,
#<ActionDispatch::Http::UploadedFile:0x007facb8033dd0 @tempfile=#
<Tempfile:/home/ubuntu/workspace/RackMultipart20160106-5826-d9ni1l.jpg>, @original_filename="yhouse7-2.jpg", @content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"user_pic[]\";
filename=\"yhouse7-2.jpg\"\r\nContent-Type: image/jpeg\r\n">],
"commit"=>"upload"}
ImgUploadController处理#创建为HTML
参数:{“utf8”=>“✓",
“真实性令牌”=>“c6z+PUcBk59+ig/SUMCRKXWFBTCA
rKnZCMu0ag0Rmp3JQzvXLWxbQ2SF7f/7VazG8Iwcxy5CWQ+nREPVJ10Jw==“,
“用户图片”=>,
#],
“提交”=>“上载”}
好的,经过一段漫长的旅程,我找到了解决方案。我没有安装
imagemagick
。
我刚下载了
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
gem "fog-aws"
gem 'mini_magick'
这三颗宝石。请使用下载imagemagick
sudo apt-get -y install imagemagick
在使用Minimagick
开始工作之前
class S3uploaderUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def cache_dir
'/tmp/cache/s3file'
end
def extension_white_list
%w(jpg jpeg png gif)
end
#version1
version :detailVertical do
process :quality => 50
end
#version2
version :detailHorizontal do
process :quality => 50
end
#version3
version :mainVertical, :from_version => :detailVertical do
process :resize_to_fit => [240, 320]
process :quality => 100
end
#version4
version :mainHorizontal, :from_version => :detailHorizontal do
process :resize_to_fit => [240, 180]
process :quality => 100
end
end
module CarrierWave
module MiniMagick
def quality(percentage)
manipulate! do |img|
img.quality(percentage.to_s)
img = yield(img) if block_given?
img
end
end
end
end
Processing by ImgUploadController#create as HTML
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"c6z+PUcBk59+ig/SUMcRrkxwFbTcA
rKnZCMu0ag0Rmp3JQzvXLWxbQ2SF7f/7VazG8Iwcxy5CWQ+nREPVJ10Jw==",
"user_pic"=>[#<ActionDispatch::Http::UploadedFile:0x007facb8033df8
@tempfile=#<Tempfile:/home/ubuntu/workspace/RackMultipart20160106-5826-109snyd.jpg>, @original_filename="yhouse7.jpg",
@content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user_pic[]\"; filename=\"yhouse7.jpg\"\r\nContent-Type: image/jpeg\r\n">,
#<ActionDispatch::Http::UploadedFile:0x007facb8033dd0 @tempfile=#
<Tempfile:/home/ubuntu/workspace/RackMultipart20160106-5826-d9ni1l.jpg>, @original_filename="yhouse7-2.jpg", @content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"user_pic[]\";
filename=\"yhouse7-2.jpg\"\r\nContent-Type: image/jpeg\r\n">],
"commit"=>"upload"}
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
gem "fog-aws"
gem 'mini_magick'
sudo apt-get -y install imagemagick