Tengo algunos usuarios de ingeniería que desean adjuntar algunos archivos de datos con extensiones de archivo poco comunes a sus publicaciones. Son esencialmente archivos de texto plano, pero incluyen caracteres ASCII extendidos.
Intenté actualizar la configuración NGINX de Discourse para especificar los tipos de medios MIME para estos archivos, pero no funcionó. Publiqué un tema (How to customize MIME media type emitted for certain attachments?) sobre esto hace dos semanas, pero no he recibido ninguna respuesta hasta ahora. Incluso si NGINX no se actualiza, seguirá sirviendo tipos de archivo desconocidos utilizando el tipo MIME de respaldo “application/octet-stream”. Puedo vivir con eso por ahora.
Sin embargo, cuando los usuarios intentan cargar estos archivos de datos en una publicación (ya sea usando el botón “Cargar” o arrastrando y soltando), reciben un mensaje de error de Discourse como este:
Parece que cuando los usuarios cargan archivos, Discourse intenta ser inteligente y detectar si es una imagen u otro tipo de archivo. Además, parece que está haciendo esta determinación mirando el contenido del archivo (muy parecido a lo que hace el comando estándar de Unix “file”). Supongo que esto es para que Discourse pueda decidir si insertarlo en el contenido de la publicación o colocarlo a un lado como un archivo adjunto.
En el caso de estos archivos de datos, esta verificación identifica incorrectamente los archivos como imágenes. Solo por diversión, puse algunos de estos archivos de datos en una máquina Ubuntu y los verifiqué con el comando “file”, y efectivamente, fueron identificados como “datos de imagen JPEG”.
¿Hay alguna manera de que los usuarios carguen archivos sin que Discourse intente detectar si son imágenes? Es decir, “¿Por favor, carga esto como un archivo adjunto, sin importar qué, no lo insertes”?
Alternativamente, podría configurar Discourse para permitir archivos zip y decirles a los usuarios que compriman sus archivos antes de cargarlos, pero preferiría no abrir el sitio a cargas aleatorias de archivos zip. Eso parece un problema de seguridad.
¡Gracias de antemano por cualquier ayuda!




