Carrierwave pdf upload не удалось изменить - PullRequest
0 голосов
/ 10 октября 2018

Я использую CarrierWave для загрузки файлов в моем приложении.Внезапно, с 6 октября 2018 года, PDF-файлы не могут быть загружены, и приложение вызывает эту ошибку:

Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: 
`identify /tmp/mini_magick20181010-10534-s5jchg.pdf` failed with error: 
identify: not authorized `/tmp/mini_magick20181010-10534-s5jchg.pdf' @ 
error/constitute.c/ReadImage/412. 

Есть много вопросов о том же, но ни один из ответов не решил эту проблему.Я также попробовал с Rmagick, но не повезло.

Ниже приведен мой загрузчик

class AttachmentUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  include CarrierWave::MiniMagick

  # Choose what kind of storage to use for this uploader:
  #storage :file
  storage :fog

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  # Provide a default URL as a default if there hasn't been a file uploaded:
  def default_url
    "no-photo.png"
  end


  # Create different versions of your uploaded files:

  version :thumb do
    # crop to exactly 80px x 80px
    process :resize_to_fill => [80, 80]
  end

  version :web do
    # scale to be no larger than 800px x 500px
    process :resize_to_limit => [800, 500]
  end

  # Add a white list of extensions which are allowed to be uploaded.
  # For images you might use something like this:
  # def extension_white_list
  #   %w(jpg jpeg gif png)
  # end

  # Override the filename of the uploaded files:
  # Avoid using model.id or version_name here, see uploader/store.rb for details.
  # def filename
  #   "something.jpg" if original_filename
  # end

end

Дайте мне знать ваши мысли.

Спасибо

1 Ответ

0 голосов
/ 19 декабря 2018

Это было вызвано обновлением безопасности в ImageMagick, которое было выпущено в октябре 2018 года (https://launchpad.net/ubuntu/+source/imagemagick/8:6.7.7.10-6ubuntu3.13).

Это довольно простое исправление. См. https://stackoverflow.com/a/52661288/935514.

Примечание: вам нужно толькоизмените строку <policy domain="coder" rights="read|write" pattern="PDF" />, и вам потребуется только перезапустить веб-работников, а не весь сервер.

...