Este error está relacionado con la configuración Omitir grupos de revisión de medios.
Al publicar una imagen desde un dispositivo móvil, la carga de la imagen se completa correctamente y el cuerpo de la publicación contiene una referencia de imagen (por ejemplo,
).
Sin embargo, la solicitud POST /posts posterior contiene:
“image_sizes”: {}
La comprobación de revisión de medios en el servidor solo se ejecuta cuando manager.args[:image_sizes].present? es verdadero:
if manager.args[:image_sizes].present? &&
!user.in_any_groups?(SiteSetting.skip_review_media_groups_map)
return :contains_media
end
Un hash vacío no es present? en Ruby, por lo que la publicación no se identifica como que contiene medios y no se envía a revisión. Por lo tanto, nunca se llega a la comprobación de skip_review_media_groups.
Evidencia HAR:
- POST /uploads se completó con éxito (2xx).
- La carga útil de POST /posts contiene Markdown de imagen en
raw. - La misma carga útil contiene “image_sizes”: {}.
- La publicación no se puso en cola para revisión.
El compositor web construye image_sizes a partir de las imágenes en el DOM de vista previa del editor. Esto hace que la revisión de medios dependa de los metadatos de vista previa proporcionados por el cliente, los cuales pueden faltar en clientes móviles o si la imagen de vista previa no se ha cargado.
Comportamiento esperado: Una publicación que contenga una imagen cargada/incrustada debería entrar en la revisión de medios independientemente de si el cliente envía las dimensiones de la imagen.
Solución sugerida:
-
Detección de medios en el servidor a partir del contenido de la publicación — Determinar si una publicación contiene medios inspeccionando el contenido
rawocookedde la publicación (o las referencias de carga) en el servidor, en lugar de depender únicamente del campoimage_sizesproporcionado por el cliente. -
Revisar todos los archivos de medios cargados (mejor que la opción 1) — En lugar de revisar solo los archivos de medios que aparecen dentro de una publicación, revisar directamente cada archivo de medio cargado por el usuario. Esto elimina por completo la dependencia de los metadatos a nivel de publicación y garantiza que ningún medio cargado eluda la cola de revisión, independientemente del cliente o el punto de conexión utilizado.