AWS Elastic Beanstalk 文件上传限制问题

AWS Elastic Beanstalk 文件上传限制问题

我在 AWS Elastic Beanstalk 实例上遇到了问题,似乎无法上传 6MB 大小的 PDF 文件。首先,让我提供一些背景信息:

  • 正在运行的应用程序是 Expression Engine (EE) 应用程序
  • upload_max_filesize 设置为 16M
  • post_max_size 设置为 32M
  • max_execution_time 设置为 300
  • 文件正在通过 Elastic Beanstalk 上的 EE 应用程序上传到 Amazon S3 存储桶。

我可以成功上传 1-2MB 左右的 PDF 文件,但是当我尝试上传 6MB 文件时,上传比例达到 100%,然后将我重定向回 EE 主屏幕,但文件尚未上传。

鉴于上述配置变量的设置,是否有人知道或知道为什么我无法上传 6MB 的文件?

答案1

如果您使用的是 NGINX 或其他代理服务器,则可能与其client_max_body_size指令有关。要修复它,请.ebextensions在应用程序根目录中创建文件夹和一个文件.ebextensions/01_nginx.config。然后告诉构建脚本在构建环境时添加此指令,将其添加到您创建的文件中.ebextensions/01_nginx.config

container_commands:
  01_reload_nginx:
    command: "service nginx reload"
files:
    "/etc/nginx/conf.d/proxy.conf":
      mode: "000755"
      owner: root
      group: root
      content: |
        client_max_body_size 25M;

将您的文件夹提交到 git,如果您正在使用它。然后eb deploy,祈祷并尝试上传您的 6MB PDF。

但是,根据我的经验,有时您必须完全重建整个环境才能使其正常工作。

答案2

如果有人仍然在为此苦苦挣扎,请查看这篇文章的第一个答案

就我而言,构建步骤仅将.build文件夹复制到 ElasticBeanstalk,因此我必须将该步骤添加- cp -R .platform ./build/.platform到我buildspec.yml的构建步骤中,以便 .platform 文件夹也被复制。

相关内容