Plots2: Error al cargar la imagen

Creado en 4 abr. 2021  ·  35Comentarios  ·  Fuente: publiclab/plots2

La carga de la imagen falla con este error en la sección del cuerpo "Sección 4" de la ruta /post
Screenshot from 2021-04-04 03-28-07 esto está en https://publiclab.org/ , pude replicarlo en https://unstable.publiclab.org y localmente

Nota: La carga de imágenes funciona bien en la "Sección 2" de /post
Plantilla: https://github.com/publiclab/plots2/blob/main/app/views/editor/rich.html.erb

bug help wanted high-priority

Comentario más útil

De acuerdo, @icarito y yo pudimos resolver un problema de actualización de hilo para extraer el código real del editor 3.0.3 , lo confirmamos y luego solucionamos otro problema de configuración de nginx relacionado con SSL y ahora es trabajando en el sitio en vivo. ¡Gracias a todos!

image

Todos 35 comentarios

También se hace referencia a # 9442 para un problema menor.

gracias @waridrox : +1:

Al intentar depurar más el problema, el error que obtuve al cargar una imagen desde el almacenamiento de archivos local fue
Paperclip::Errors::CommandNotFoundError: Could not run the 'identify' command. Please install ImageMagick.
en el entorno de desarrollo local. Creo que esta es una nueva dependencia para la gema paperclip que se ocupa de la carga de archivos.

Screenshot 2021-04-04 at 8 13 15 PM

Después de instalar imagemagick con el comando sudo apt-get install imagemagick o brew install imagemagick , agregué estas 2 líneas de código en el archivo development.rb .

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

Después de eso, simplemente reinicié el servidor y la carga del archivo volvió a funcionar con tipos de archivo como jpeg , png y gif . Aquí hay un vistazo de lo mismo:

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

Desde _este hilo_ en stackoverflow, también necesitamos agregar estas 2 líneas en production.rb para reflejar los cambios en la aplicación de producción.

También debido al parámetro opcional para instalar image-magick en https://github.com/publiclab/plots2/blob/main/doc/PREREQUISITES.md#image -libraries-optional, este comportamiento se observó en primer lugar.

Gracias @waridrox ,

Oh, realmente lo siento, por favor revierte el tirón entonces. Sin embargo, ¿funciona a nivel local? Quizás probar sudo apt-get update primero y luego sudo apt-get install imagemagick puede ayudar ...

Hola a todos, localmente tiene algún sentido que sea un imagemagick pero (o ausencia de imagemagick) pero en estable debería estar instalado. Me pregunto si es un error distinto en el establo. Deberíamos verificar en Sentry.io. Cess, ¿tienes acceso?

¡Gracias por encontrar y documentar esto!

No veo errores de centinela en la carga de imágenes, excepto en relación con las fotos de perfil (que suele ser el caso debido al spam y los ataques).

Screenshot_20210404-174638
Screenshot_20210404-174706

¿Cuál es la ruta del error? ¿Es un error 500?

Lo siento, me refiero a / recientes / errores

@waridrox no funcionó para mí localmente, tal vez tenga la versión incorrecta .. @jywarren fue más un error 302 por mi parte

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

Ajá, error 302 de hecho ... 🕵️

Veré por qué ese puede ser el caso. ¡Gracias!

Voy a intentar ejecutarlo en GitPod para ver si puedo reproducir el 302 ...

OK, ¡obtuve un registro de 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)

Bien, entonces, ¿por qué nos están redirigiendo para iniciar sesión ... buscando ...

$('meta[name="csrf-token"]').attr('content') recupera correctamente el token, así que no es eso ...

Teniendo en cuenta que en GitPod, el cargador de imágenes principal funciona. Utiliza el mismo controlador, por lo que es probable que el problema esté en el propio código del módulo de texto enriquecido del editor:


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">}}

Y, de hecho, el cargador de imágenes principal también usa el token en su solicitud:

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

Lo recupera correctamente con:

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

Confirmado. La carga de la imagen principal tiene este conjunto de parámetros en la solicitud de formulario:

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

Mientras que la carga de imágenes en línea solo tiene estos:

nid: null
image[photo]: (binary)

verificar los cambios recientes en esa sección de código, así como las opciones del módulo en sí para asegurarse de que el constructor lo almacene / transfiera correctamente.

Vaya, error profundo. Persiguiendo a través de https://github.com/jywarren/woofmark/pull/2 a la biblioteca woofmark : https://github.com/bevacqua/woofmark/pull/44

Está presente en nuestra sucursal de woofmark :

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

Creo que este RP de hace 28 días puede estar relacionado. el último cambio a la rama de woofmark que estamos usando ocurrió en septiembre de 2020.

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

No veo nada en el código en woofmark - 2 rutas ahora:

  1. rastreando el parámetro upload.xhrOptions través de Woofmark y confirmando que lo tiene correctamente
  2. ver si el módulo xhr npm ha cambiado

https://www.npmjs.com/package/xhr publicó 2.6 hace 5 meses, pero ha estado en 2.2.1 durante muchos meses en nuestros proyectos. confirmado en package-lock.json

De acuerdo, entonces upload.xhrOptions param beforeSend lo convierte en woofmark , como se probó en la consola JS.

¿Genera realmente el encabezado adicional?

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

Dios, no sé cuándo dejó de funcionar, pero creo que podríamos agregar otro parámetro formData y hacerlo de esa manera. ¿Pero no estás seguro de si se pasará por alto con los demás, o si xhr lib lo ignorará?

Observar que esto habría sucedido el 5 de noviembre de 2020 en https://github.com/publiclab/PublicLab.Editor/releases/tag/v3.0 o hace 28 días en https://github.com/publiclab/plots2/pull/ 9323

De acuerdo con esta línea, creo que formData debería pasarse normalmente:

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

intentará en GitPod:

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

... QUE LO HIZO:

image

Se solucionará en https://github.com/publiclab/PublicLab.Editor/pull/712 , versión 3.0.3, y también agregará el token adicional formData en https://github.com/publiclab/plots2 / tirar / 9504.

¡Uf!

Hecho y confirmado en estable!

image

@ publiclab-mimi informó hoy que

En el editor de notas de investigación no pude cargar un archivo JPEG, PDF o PNG.
En Google Chrome y Safari, tanto arrastrar y soltar como opciones de navegación

@ebarry , creo que la versión actual todavía no tiene los cambios anteriores debido al tiempo de búfer requerido para impulsar los cambios a la versión en vivo. Eso es porque la carga de imágenes / archivos funciona en la versión estable y la versión heredada.

Screenshot 2021-04-20 at 2 54 03 AM

¡El nuevo código se puso en marcha anoche! Echando un vistazo, veo un nuevo error, un error 500:

comenzando con este, que es el mismo 302 que encontró Cess:

image

Luego redirigido a este nuevo error 500:

image

que es en realidad tras un inicio de sesión exitoso, creo, pero es extraño porque ya inicié sesión?

Sentry lo registró aquí, creo, pero no estoy seguro de si el error ocurre antes o después del intento de inicio de sesión.

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

''
ActionView :: MissingTemplate
Falta la plantilla de inicio / inicio con {: locale => [: en],: formatos => [: json],: variantes => [],: handlers => [: raw,: erb,: html,: builder,: ruby,: café,: jbuilder]}. Buscado en:

  • "/ app / app / views"
  • "/usr/local/bundle/gems/grape-swagger-ui-2.2.8/app/views"
  • "/usr/local/bundle/gems/grape-swagger-rails-0.3.1/app/views"
  • ''

Eh, ¿tengo problemas para rastrear esto, así que intentaré reproducirlo en GitPod nuevamente?

De acuerdo, @icarito y yo pudimos resolver un problema de actualización de hilo para extraer el código real del editor 3.0.3 , lo confirmamos y luego solucionamos otro problema de configuración de nginx relacionado con SSL y ahora es trabajando en el sitio en vivo. ¡Gracias a todos!

image

: luego :: luego :: luego:

¡¡¡increíble!!! gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones