es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Subiendo archivos grandes a AWS Elastic Beanstalk / nginx

Tengo una aplicación que carga un archivo, la cual funciona bien en Heroku y en las máquinas locales de los desarrolladores, pero en AWS EB, la carga se interrumpe y no se completa.

He configurado las directivas de nginx de la siguiente manera:

.ebextensions/00_project.config

files:
    "/etc/nginx/conf.d/proxy.conf":
        mode: "000755"
        owner: root
        group: root
        content: |
            client_max_body_size 2000M
            client_body_buffer_size 2000M
option_settings:
  "aws:elasticbeanstalk:container:python":
    WSGIPath: server:application

.platform/nginx/conf.d/proxy.conf

client_max_body_size 2000M;
client_body_buffer_size 2000M;

.platform/nginx/00_myconf.config

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

Esto se ejecuta en python3.8 y utiliza un framework de plotly/react llamado Dash. https://dash.plotly.com/introduction

Como mencioné, solo no funciona en AWS, por lo que parece ser un problema de configuración del sistema. Para confirmar esto, cargué un archivo grande en un bucket público y hice que esta aplicación leyera desde el bucket en lugar de la carga, y funcionó bien.

He agotado todas las opciones, así que cualquier ayuda es muy apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema en este caso está relacionado con la funcionalidad de carga de archivos de la aplicación cuando se implementa en AWS Elastic Beanstalk. Se han configurado las directivas de nginx para aumentar el client_max_body_size y el client_body_buffer_size a fin de permitir la carga de archivos más grandes. Además, se ha establecido el WSGIPath en server:application en la sección option_settings.

    Una posible solución al problema podría ser investigar si existen firewalls, grupos de seguridad o configuraciones de red que estén bloqueando la solicitud de carga de archivos al entorno de Elastic Beanstalk. También podría ser útil verificar si existen registros o mensajes de error que indiquen específicamente qué está causando la interrupción de la carga.

    Otro paso para solucionar el problema podría ser probar la funcionalidad de carga de archivos con un tamaño de archivo más pequeño para ver si funciona correctamente. Si lo hace, aumente gradualmente el tamaño del archivo hasta que el problema vuelva a ocurrir para identificar un posible umbral para el tamaño máximo de archivo que se puede cargar correctamente.

    Por último, cabe señalar que la aplicación utiliza el framework Dash, que está construido sobre Flask. Puede ser útil investigar si existen problemas conocidos o limitaciones con la carga de archivos en aplicaciones Flask/Dash en AWS Elastic Beanstalk.

    En general, solucionar problemas relacionados con la carga de archivos puede ser complejo, pero con una investigación y pruebas cuidadosas, es posible identificar y resolver la causa subyacente del problema.

Comments are closed.