Estoy utilizando S3 para el almacenamiento de archivos adjuntos, por lo que puede manejar hasta 160 GB.
He cambiado el límite de nginx a 0 (ilimitado).
El parámetro “upload_size” en app.yml también está configurado en 0.
No cargamos directamente en S3; primero se envía a tu servidor y luego el servidor lo envía a S3. Eso significa que no quieres un límite mayor que tu espacio libre en disco.
Ok, me gustaría establecer el límite en 10 GB, tengo suficiente espacio en el disco. Pero, ¿cómo puedo cambiar el límite de Discourse?
Puedes sobrescribir el máximo usando un plugin personalizado. Puedes usar este como ejemplo:
Gracias, puedo confirmar que el límite ha desaparecido al usar este plugin y la siguiente configuración:
files:
max_attachment_size_kb:
client: true
default: 1024000
max: 6144000
Sin embargo, tengo dos problemas:
- La subida de un archivo de 2 GB se completa hasta el 100 % y luego falla con un error general en una ventana emergente.
- Cada vez que lo intento, el tamaño de Discourse Docker aumenta 2 GB y no se libera el espacio. ¡Estoy a punto de quedarme sin espacio. ¿Cómo puedo liberar esto?
Será mejor que utilices un servicio de almacenamiento en la nube adecuado de tu elección y que vincules los archivos en los temas de Discourse. Discourse no está diseñado como una herramienta de almacenamiento de archivos grandes.
Estoy usando almacenamiento en la nube S3. No se supone que nada se almacene en Discourse mismo.
Eso no es lo que quiero decir: me refiero a un servicio de almacenamiento en la nube para consumidores como Google Drive, OneDrive, Dropbox, etc.
Independientemente de cómo lo hagas, Discourse no está diseñado para manejar archivos grandes.
Independientemente de dónde termine el archivo, Discourse tampoco está diseñado para ser un mecanismo de carga de archivos voluminoso.
Entiendo que no fue la intención hacer eso, pero sería una gran función para mí y mejoraría la experiencia del usuario si no tuvieran que ir a otro servicio para subir archivos y volver a Discourse. Espero que no te lo tomes a mal si intento hacer que funcione, a pesar de que no fue la intención del desarrollo original.
La maravilla del código abierto es que eres libre de experimentar.
Del mismo modo, si algo no es compatible, no hay garantías de que los cambios futuros en Discourse no hagan que los ajustes que estás realizando hoy queden totalmente inoperativos en el futuro.
Estoy considerando permitir la carga de archivos grandes (podrían ser de 50 MB, y es posible que haya cargas masivas a través de la API) en mi sitio también. Solo trato de entender la preocupación aquí. Si S3 está configurado para manejar la carga y el almacenamiento de archivos grandes, y el foro de Discourse enlaza a esos archivos para mostrar un enlace de descarga a los usuarios, ¿alguien puede proporcionar más detalles sobre dónde esperan que Discourse tenga problemas?
El componente de carga actual simplemente no está diseñado para cargas grandes (solo las copias de seguridad en la interfaz de administración lo están).
Actualmente estamos normalizando y refactorizando nuestro código de carga y planeamos admitir cargas directas a S3. Una vez que eso esté completo, técnicamente las cargas grandes a S3 podrían funcionar.
Gracias por esa información, @sam. Antes no estaba familiarizado con cómo se almacenan las cargas de archivos. Parece que, por defecto, las cargas de archivos se almacenan en el mismo servidor que ejecuta Discourse; en ese caso, entiendo que las cargas grandes podrían ser un problema. Y comprendo cómo están trabajando para soportar cargas directas a S3 en el futuro.
¿Qué pasaría si configuras las cosas ahora para enviar las cargas de archivos a S3, como se describe aquí?
¿Eso proporcionaría la misma ventaja ahora que la función automática que planean lanzar en el futuro, y permitiría que Discourse soporte cargas y descargas de archivos grandes?
Nuestro sistema actual de cargas realiza usuario → servidor de Discourse → S3.
El nuevo sistema que implementaremos en unas pocas semanas realizará usuario → S3.
¿Podrán los sitios hacer una transición fluida al nuevo sistema de carga, de modo que las cargas realizadas bajo el sistema antiguo sigan funcionando y, al mismo tiempo, también lo hagan las del nuevo?
Supongo que sí, dado que todo se almacenará en S3, pero quería confirmarlo. Gracias.
Dado que los archivos terminarán en el mismo lugar, solo evitando algunos rodeos, el cambio será transparente tanto para los usuarios como para los administradores.
Para aclarar: espero que los usuarios no noten ningún cambio en absoluto, solo que (quizás) sus archivos se cargarán y descargarán más rápido, y esto permitirá subir archivos más grandes si los administradores lo desean. ¿Es eso correcto?
Es probable que se suban más rápido. Las descargas deberían permanecer igual (ya que la función solo afectará las subidas).
Supongo que sí, pero depende del equipo de Discourse emitir una declaración oficial al respecto.
