Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Carrierwave,Minimagick图像上传到S3不工作_Amazon S3_Carrierwave_Image Uploading_Minimagick - Fatal编程技术网

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