node.js - 为什么我在 AWS EC2 实例上的 nodejs 应用程序的大文件上传失败并显示状态 413?
问题描述
我正在使用多部分表单发布文件并上传到 s3。该应用程序在本地运行良好。
当我上传一个小文件时,它工作正常。但是,当我上传较大的文件时,上传失败,状态码为 413。
它似乎适用于大小高达 90MB 左右的文件,但不适用于较大的文件。
我的 nginx 配置如下:
server {
listen 80;
server_name mydomain.com;
location / {
client_max_body_size 500M;
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
解决方案
原来问题出在 cloudflare 上。Cloudflare 在免费层的最大上传大小限制为 100MB,即使有付费计划,限制也会增加到 200MB 左右,这不符合我的要求。
早些时候,我将文件发送到我的服务器并从那里上传,但现在我绕过了它,使用预签名的 PUT url 将对象从浏览器直接上传到 S3。
推荐阅读
- angular - ng2-file-upload 多个文件到不同的 URL,但使用相同的 Uploader
- python - 创建多个数据框列,其中包含来自现有列的计算值
- c# - 在 C# 和 iText 7 中使用 x509Certificate2 创建 IExternalSignature
- c# - PDF修改在C#中需要时间
- google-sheets - bigQuery Google Drive 使用 googleSheetsOptions 范围查询多个工作表
- c# - 运行代码时没有出现winform
- reactjs - How can one extend React types to support html attributes as props?
- sass - 如何将 SCSS 十六进制值转换为字符串,以便用于 CSS 类名?
- output - Pi2 GPIO 仅输出 4.7v
- javascript - 有没有办法更有效地扁平化这个承诺链(涉及链式捕获)?