【问题标题】:Large files are not transmitted to an Elastic Beanstalk hosted app大文件不会传输到 Elastic Beanstalk 托管应用程序
【发布时间】:2020-12-06 00:23:27
【问题描述】:

我目前正在开发一个需要存储大文件(有时大小超过 100mb 的 mp4 视频)的网络应用程序。但是,当我尝试将它们从托管在 S3 存储桶中的静态 Angular 网站上传到使用 AWS Elastic Beanstalk 托管的 API 时,我收到了一个我不理解的错误。 Click here to see the error

我尝试了什么:

  1. 上传PDF没有问题。效果很好。

  2. 上传非常短的 MP4 (3s, 453Kb) 时没有问题。它工作干净,但比 PDF 慢一点,但仍然很短(3 秒)。这就是为什么我认为问题可能来自文件大小。

  3. 我在互联网上读到使用 Nginx 时有一个叫做 client_max_body_size 的东西(就像 AWS 一样)。我试图通过将其添加到我的项目来增加此默认限制:

    myrootproject/.ebextensions/nginx.conf

    进入 nginx.conf:

    files:
       "/etc/nginx/conf.d/proxy.conf" :
            content: |
                client_max_body_size 4G;
    

    但什么都没有改变......或者至少它没有达到预期的效果,它仍然无法正常工作。

其他信息

  1. 当我在本地进行此操作时,它工作正常。

  2. 当我从托管网站(S3 存储桶)到本地 API 进行此操作时,它工作正常。

  3. 从服务器获得响应需要很长时间(仅在发生此错误时)。我觉得这个请求甚至没有访问我的 NodeJS 代码,因为如果它发出错误,我会处理它。

  4. 这是我的请求的屏幕截图,如果有帮助的话:

    Request (first part) Request (second part)

我真的需要这方面的帮助,希望你能给我!

P.S:我在翻译的帮助下创建了这篇文章。如果某些部分写得奇怪,我很抱歉,

【问题讨论】:

    标签: node.js angular amazon-web-services amazon-s3 amazon-elastic-beanstalk


    【解决方案1】:

    myrootproject/.ebextensions/nginx.conf 选项不生效,可能是因为您使用的是 Amazon Linux 2 (AL2) - 我假设您使用的是 AL2。但是这个配置文件只适用于 AL1。

    对于 AL2,nginx 设置 should be provided.platform/nginx/conf.d/,而不是 .ebextentions。因此,例如,您可以创建以下配置文件:

    .platform/nginx/conf.d/mynginx.conf

    内容为:

    client_max_body_size 4G
    

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2023-03-05
      • 2019-03-09
      • 2022-01-13
      • 2019-04-27
      • 2021-02-07
      • 2020-12-05
      • 2020-08-17
      • 2021-11-16
      相关资源
      最近更新 更多