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.

Obteniendo el error 413 Payload demasiado grande al enviar archivos a la WebApp en Elastic Beanstalk.

Estoy trabajando en una aplicación web donde los usuarios envían fotos a una API que se ejecuta en AWS (Elastic Beanstalk). Estoy viendo respuestas 413 (carga demasiado grande) cuando los usuarios intentan enviar fotos que son > 2mb, lo cual parece ser resultado de la configuración predeterminada de maxPostSize de Tomcat 8.

Por lo tanto, estoy tratando de encontrar una forma de modificar esta configuración con el resto de las opciones de JVM que tenemos predefinidas para cada nueva instancia EC2 que se inicia con nuestro escalado automático. He hablado con el soporte de AWS y nos han recomendado usar extensiones EB para configurar un archivo server.xml con las configuraciones necesarias que se copian cada vez que Elastic Beanstalk pone en marcha un nuevo servidor.

Sin embargo, dado que todos nuestros otros ajustes están configurados con variables de entorno/opciones de JVM en la configuración de Elastic Beanstalk, preferiría modificar el maxPostSize de Tomcat de la misma manera, pero no he podido encontrar la variable (si es que es posible) con la sintaxis java -D. ¿Alguien puede indicarme en la dirección correcta?

¡Aprecio mucho cualquier consejo o recomendación!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución para aumentar maxPostSize en Tomcat 8 con Opciones de JVM

    El problema de obtener respuestas 413 (payload demasiado grande) cuando los usuarios envían fotos con un tamaño superior a 2MB en la API de AWS Elastic Beanstalk sugiere que maxPostSize en Tomcat 8 está configurado con el valor predeterminado. Por lo tanto, para modificar esta configuración junto con el resto de las opciones de JVM, puede seguir los siguientes pasos:

    1. Cree un archivo de configuración de Elastic Beanstalk en la carpeta .ebextensions del paquete de código fuente de su aplicación. Por ejemplo, el nombre del archivo debe ser 01_tomcat_config.config.
    2. En el archivo .config, especifique las opciones de JVM que se utilizarán con su entorno de Elastic Beanstalk.

    option_settings:
      aws:elasticbeanstalk:container:tomcat:jvmoptions: MaxPostSize: 5242880
    

    Aquí, el valor 5242880 se puede modificar según el límite deseado de maxPostSize.

    1. Guarde e implemente el archivo de configuración de Elastic Beanstalk con las opciones de JVM actualizadas.

    Esto modificará el valor predeterminado de maxPostSize en el servidor Tomcat 8 junto con otras opciones de JVM predefinidas.

    Alternativamente, si prefiere modificar maxPostSize de Tomcat con la sintaxis java -D, puede utilizar el siguiente comando:

    java -Dorg.apache.tomcat.util.http.fileupload.maxSize=5242880 -jar <nombre-de-su-aplicación>.jar
    

    Aquí, puede ajustar el valor 5242880 según el límite deseado de maxPostSize.

    ¡Espero que esto ayude!</nombre-de-su-aplicación>

Comments are closed.