Plots2: Ошибка загрузки изображения

Созданный на 4 апр. 2021  ·  35Комментарии  ·  Источник: publiclab/plots2

Ошибка при загрузке изображения в разделе основной части "Раздел 4" маршрута /post
Screenshot from 2021-04-04 03-28-07 это на https://publiclab.org/ , удалось воспроизвести его на https://unstable.publiclab.org и локально

Примечание. Загрузка изображения в "Разделе 2" /post работает нормально.
Шаблон: https://github.com/publiclab/plots2/blob/main/app/views/editor/rich.html.erb

bug help wanted high-priority

Самый полезный комментарий

Хорошо, @icarito и я смогли решить проблему обновления пряжи, чтобы вытащить реальный код редактора 3.0.3 , подтвердили его, затем исправили еще одну проблему конфигурации nginx связанную с SSL, и теперь это работаю на живом сайте. Спасибо всем!

image

Все 35 Комментарий

Также ссылка на # 9442 для незначительной проблемы.

спасибо @waridrox : +1:

Пытаясь отладить проблему дальше, я получил ошибку при загрузке изображения из локального файлового хранилища.
Paperclip::Errors::CommandNotFoundError: Could not run the 'identify' command. Please install ImageMagick.
в локальной среде разработки. Я считаю, что это новая зависимость для драгоценного камня paperclip которая имеет дело с загрузкой файлов.

Screenshot 2021-04-04 at 8 13 15 PM

После установки imagemagick с помощью команды sudo apt-get install imagemagick или brew install imagemagick я добавил эти 2 строки кода в файл development.rb .

Paperclip.options[:image_magick_path] = "/opt/ImageMagick/bin"
Paperclip.options[:command_path] = "/opt/ImageMagick/bin"

После этого я просто перезапустил сервер, и загрузка файла снова jpeg с такими типами файлов, как png и gif . Вот проблеск того же -

https://user-images.githubusercontent.com/58583793/113514702-c308e700-958d-11eb-8e12-59c7a9648b24.mp4

Из _this thread_ в stackoverflow нам нужно добавить эти 2 строки в production.rb, чтобы отразить изменения в производственном приложении.

Также из-за необязательного параметра для установки image-magick в https://github.com/publiclab/plots2/blob/main/doc/PREREQUISITES.md#image -libraries-optional это поведение наблюдалось в первую очередь.

Спасибо, @waridrox , я

О, sorry действительно сожалею об этом, пожалуйста, тогда отмените тягу. Но работает ли он локально? Может быть, попытка сначала sudo apt-get update а затем sudo apt-get install imagemagick может помочь ...

Привет всем, локально имеет смысл, что это imagemagick, но (или отсутствие imagemagick), но на стабильной версии он должен быть установлен. Интересно, это явная ошибка на стабильной версии? Мы должны провести перекрестную проверку на Sentry.io. Сесс у вас есть доступ?

Спасибо, что нашли и задокументировали это !!

Я не вижу сторожевых ошибок при загрузке изображений, за исключением изображений профиля (что часто бывает из-за спама и атак).

Screenshot_20210404-174638
Screenshot_20210404-174706

Каков путь к ошибке? Это ошибка 500?

Извините, я имею в виду / недавние / ошибки

@waridrox это не сработало для меня локально, возможно, у меня неправильная версия .. @jywarren это была скорее ошибка 302 на моем конце

Screenshot from 2021-04-05 00-54-02

Ага, действительно ошибка 302 ... 🕵️

Я посмотрю, почему это может быть так. Спасибо!

Я собираюсь попробовать запустить его в GitPod, чтобы посмотреть, смогу ли я воспроизвести 302 ...

Хорошо, получил лог от GitPod!

Started POST "/images" for 10.4.6.182 at 2021-04-13 18:36:40 +0000
Cannot render console from 10.4.0.249! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by ImagesController#create as JSON
  Parameters: {"nid"=>"null", "image"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x00007f444ce23c30 @tempfile=#<Tempfile:/tmp/RackMultipart20210413-4879-sla487.jpg>, @original_filename="11aa-love-ryan2-720.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image[photo]\"; filename=\"11aa-love-ryan2-720.jpg\"\r\nContent-Type: image/jpeg\r\n">}}
Can't verify CSRF token authenticity.
Redirected to https://3000-aquamarine-bass-qsunlo8p.ws-us03.gitpod.io/login?return_to=/images
Filter chain halted as :require_user rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.0ms)


Started GET "/login?return_to=/images" for 10.4.6.182 at 2021-04-13 18:36:40 +0000
Cannot render console from 10.4.0.249! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UserSessionsController#new as JSON
  Parameters: {"return_to"=>"/images"}
  User Load (0.5ms)  SELECT  `rusers`.* FROM `rusers` WHERE `rusers`.`id` = 1 LIMIT 1
   (0.2ms)  BEGIN
  User Update (0.5ms)  UPDATE `rusers` SET `last_request_at` = '2021-04-13 18:36:40', `updated_at` = '2021-04-13 18:36:40' WHERE `rusers`.`id` = 1
   (28.6ms)  COMMIT
Redirected to https://localhost/home?return_to=%2Flogin
Filter chain halted as :require_no_user rendered or redirected
Completed 302 Found in 35ms (ActiveRecord: 29.7ms)

Итак, почему нас перенаправляют для входа в систему ... ищем ...

Похоже, токен CSRF не работает ... посмотрим ...

https://github.com/publiclab/plots2/blob/bd7b2e26c1edbd85a9754d8b25bc27950fd99770/app/views/editor/rich.html.erb#L344 -L347

мы передаем это здесь.

$('meta[name="csrf-token"]').attr('content') правильно извлекает токен, так что это не так ...

Отметим, что в GitPod работает основной загрузчик изображений. Он использует тот же контроллер, поэтому проблема, скорее всего, кроется в самом коде модуля форматированного текста редактора:


Started POST "/images" for 10.4.0.248 at 2021-04-13 18:47:45 +0000
Cannot render console from 10.4.6.181! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by ImagesController#create as JSON
  Parameters: {"authenticity_token"=>"5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg==", "uid"=>"1", "image"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x000055644bef1898 @tempfile=#<Tempfile:/tmp/RackMultipart20210413-5664-bsht8f.jpg>, @original_filename="11aa-love-ryan2-720.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image[photo]\"; filename=\"11aa-love-ryan2-720.jpg\"\r\nContent-Type: image/jpeg\r\n">}}

И на самом деле загрузчик основного изображения также использует токен в своем запросе:

https://github.com/publiclab/PublicLab.Editor/blob/59e5bf6fd1ac2b6f9108e522baa7cdab36e0bb64/src/modules/PublicLab.MainImageModule.js#L94

Он правильно загружает его с помощью:

editor.options.mainImageModule.token
"5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg=="

Подтвержденный. Загрузка основного изображения имеет следующий набор параметров в форме запроса:

authenticity_token: 5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg==
uid: 1
image[photo]: (binary)

В то время как при загрузке встроенного изображения есть только эти:

nid: null
image[photo]: (binary)

проверка последних изменений в этом разделе кода, а также самих параметров модуля, чтобы убедиться, что он правильно сохраняется / передается из конструктора.

Вау, глубокая ошибка. Возвращение через https://github.com/jywarren/woofmark/pull/2 к библиотеке woofmark : https://github.com/bevacqua/woofmark/pull/44

Он присутствует в нашей ветке woofmark :

https://github.com/jywarren/woofmark/blob/plots2/src/prompts/prompt.js#L133

Я считаю, что этот пиар 28-дневной давности может иметь отношение. последнее изменение в ветке woofmark мы используем, произошло в сентябре 2020 года.

https://github.com/jywarren/woofmark/pull/76/files

Я не вижу ничего в коде в маршрутах woofmark - 2:

  1. отслеживание параметра upload.xhrOptions через Woofmark и подтверждение его правильности
  2. проверка, изменился ли модуль xhr npm

https://www.npmjs.com/package/xhr опубликовано 5 месяцев назад в версии 2.6, но в наших проектах уже много месяцев находится на уровне 2.2.1. подтверждено в package-lock.json

Итак, upload.xhrOptions param beforeSend действительно превращается в woofmark , как это было проверено в консоли JS.

Действительно ли он генерирует дополнительный заголовок?

xhrOptions: { 
        beforeSend: function(xhr) { xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')) }
      },

Черт возьми, я не знаю, когда это перестало работать, но я думаю, что потенциально мы могли бы просто добавить еще один параметр formData и сделать это таким образом ??? Но не уверены, будет ли он пропущен вместе с другими, или xhr lib проигнорирует его?

Отметим, что это произошло бы либо 5 ноября 2020 года в https://github.com/publiclab/PublicLab.Editor/releases/tag/v3.0, либо 28 дней назад в https://github.com/publiclab/plots2/pull/ 9323

В соответствии с этой строкой, я считаю, что formData должен пройти нормально:

https://github.com/bevacqua/woofmark/pull/44/files#diff -b70752c6e4fb751c6aa381f57afac66c25cc2d401b141b03e1751d81e60efcd2R216

попробую в GitPod:

      formData: {nid: null, authenticity_token: _module.options.token},

... ЭТО СДЕЛАЛО:

image

Будет исправлено в https://github.com/publiclab/PublicLab.Editor/pull/712 , выпуск 3.0.3, а также добавлен дополнительный токен formData в https://github.com/publiclab/plots2 / тянуть / 9504.

Ух!

Готово и подтверждено в стабильной версии!

image

@ publiclab-mimi сообщил сегодня, что

В редакторе исследовательских заметок мне не удалось загрузить JPEG, PDF или PNG.
В Google Chrome и Safari как перетаскивание, так и параметры просмотра

@ebarry , я думаю, что в текущей версии все еще нет вышеуказанных изменений из-за времени буфера, необходимого для внесения изменений в живую версию. Это потому, что загрузка изображений / файлов работает как в стабильной, так и в устаревшей версиях.

Screenshot 2021-04-20 at 2 54 03 AM

Новый код был запущен вчера вечером! Взглянув, я вижу новую ошибку - ошибку 500:

начиная с этого, который представляет собой тот же 302, что и найденный Cess:

image

Затем перенаправлен на эту новую ошибку 500:

image

что на самом деле происходит при успешном входе в систему, я считаю, но это странно, потому что я уже вошел в систему?

Я думаю, Sentry зарегистрировал это здесь, но я не уверен, произошла ли ошибка до или после попытки входа в систему.

https://sentry.io/share/issue/13e10e65210c4ceb9860ec687482d9b7/

`` ''
ActionView :: MissingTemplate
Отсутствует шаблон home / home с {: locale => [: en],: sizes => [: json],: options => [],: handlers => [: raw,: erb,: html,: builder,: рубин,: кофе,: jbuilder]}. Искали в:

  • "/ приложение / приложение / просмотры"
  • "/usr/local/bundle/gems/grape-swagger-ui-2.2.8/app/views"
  • "/usr/local/bundle/gems/grape-swagger-rails-0.3.1/app/views"
  • `` ''

Ха, у меня проблемы с отслеживанием этого, так что я попробую воспроизвести в GitPod еще раз ???

Хорошо, @icarito и я смогли решить проблему обновления пряжи, чтобы вытащить реальный код редактора 3.0.3 , подтвердили его, затем исправили еще одну проблему конфигурации nginx связанную с SSL, и теперь это работаю на живом сайте. Спасибо всем!

image

: then :: then :: then:

классно!!! Спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги