我在项目中上传任何超过 2GB 的视频文件时遇到错误 413 请求实体太大

问题描述 投票:0回答:1

当我尝试上传超过 2GB 的视频文件时,出现请求实体太大错误。 任何低于 2GB 的内容都可以上传。

我已经在使用 client_max_body_size 并将其设置为 5GB。

这是我的 NGINX 确认文件:

server {
        add_header Content-Security-Policy "frame-ancestors 'self';";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
        add_header Cache-control "no-cache,no-store,must-revalidate";
        add_header Pragma "no-cache";
        add_header Expires "0";
        root /var/www/project/path;
        index index.html;
        server_name _ urlchanged;
       #try_files $request_uri $uri$args $uri$args/ $uri $uri/ /index.html =404;
        try_files $uri $uri/ /index.html =404;
        # file upload fixes
        client_max_body_size    5000M;
        # proxy_buffer_size       1024k;
        # proxy_buffers 4 1024k;
        # proxy_busy_buffers_size 1024k;
        proxy_request_buffering off;
        proxy_max_temp_file_size 10000m;
        proxy_connect_timeout   10000;
        proxy_send_timeout      10000;
        proxy_read_timeout      10000;
        send_timeout            10000;
        client_header_timeout   10000;
        client_body_timeout     10000;
        location /api/ {
          proxy_pass http://127.0.0.1:3100/;
          proxy_connect_timeout 10000s;
          proxy_read_timeout 10000s;
          proxy_send_timeout 10000s;
          proxy_set_header    Host \$host;
          proxy_set_header    X-Real-IP \$remote_addr;
          proxy_set_header    X-Forwarded-For \$proxy_add_x_forwarded_for;
          proxy_set_header    X-Forwarded-Host \$server_name;
          proxy_set_header    X-NginX-Proxy true;
          client_max_body_size    5000M;
        }
listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/urlchanged; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/curlchanged; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
    if ($host = urlchanged) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    server_name _ urlchanged
    listen 80;
    return 404; # managed by Certbot
}

我尝试将客户端最大主体大小更改为 500mb,并尝试上传超过 500mb 的视频文件,但它不起作用,并给出了相同的错误,但确认大小为 5GB 时它不起作用。

我的前端 package.json 文件

{
    "name": "connect",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "test": "echo 'No tests'",
        "start": "nodemon ./api/bin/www",
        "build": "./node_modules/.bin/gulp build",
        "dev": "./node_modules/.bin/gulp start"
    },
    "author": "",
    "license": "ISC",
    "dependencies": {
        "aframe-video-controls": "^0.3.0",
        "angular": "^1.6.4",
        "angular-animate": "^1.6.4",
        "angular-aria": "^1.6.4",
        "angular-chart.js": "^1.1.1",
        "angular-cookies": "^1.6.4",
        "angular-drag-drop": "^3.1.0",
        "angular-dragdrop": "^1.0.13",
        "angular-google-charts": "^0.1.6",
        "angular-loading-bar": "^0.9.0",
        "angular-material": "^1.1.4",
        "angular-messages": "^1.6.4",
        "angular-route": "^1.6.4",
        "angular-route-segment": "^1.5.1",
        "angular-sanitize": "^1.6.4",
        "angular-scroll": "^1.0.2",
        "angulartics": "^1.4.0",
        "angulartics-google-analytics": "^0.5.0",
        "angulartics-google-tag-manager": "0.0.1",
        "canvas2image": "^1.0.5",
        "ckeditor": "^4.7.0",
        "eslint-config-prettier": "^8.3.0",
        "eslint-plugin-prettier": "^3.4.0",
        "gulp-cli": "^2.3.0",
        "handsontable": "^6.2.2",
        "html2canvas": "^1.0.0-rc.5",
        "lodash": "^4.17.5",
        "moment": "^2.24.0",
        "ng-file-upload": "^12.2.13",
        "ng-handsontable": "^0.13.0",
        "ngstorage": "^0.3.11",
        "nosleep.js": "^0.9.0",
        "oclazyload": "^1.1.0",
        "prettier": "^2.3.1",
        "ui-cropper": "^1.0.4",
        "zxcvbn": "^4.4.2"
    },
    "devDependencies": {
        "eslint": "^7.16.0",
        "eslint-config-airbnb": "^18.2.1",
        "eslint-plugin-import": "^2.22.1",
        "eslint-plugin-jsx-a11y": "^6.4.1",
        "@babel/core": "^7.4.5",
        "@babel/preset-env": "^7.4.5",
        "babel-polyfill": "^6.26.0",
        "gulp": "^4.0.2",
        "gulp-angular-templatecache": "^3.0.0",
        "gulp-babel": "^8.0.0",
        "gulp-clean-css": "^4.0.0",
        "gulp-concat": "^2.6.1",
        "gulp-htmlmin": "^5.0.1",
        "gulp-if": "^2.0.2",
        "gulp-ignore": "^2.0.2",
        "gulp-less": "^4.0.1",
        "gulp-order": "^1.2.0",
        "gulp-rename": "^1.2.2",
        "gulp-sourcemaps": "^2.6.5",
        "gulp-strip-comments": "^2.5.2",
        "gulp-uglify": "^3.0.0",
        "gulp-util": "^3.0.8"
    }
}

后端的package.json文件:

{
    "name": "project-api",
    "version": "3.0.1",
    "main": "app.js",

    "license": "ISC",
    "directories": {
        "test": "test"
    },
    "resolutions": {
        "graceful-fs": "4.2.4"
    },
    "scripts": {
        "start": "nodemon bin/www",
        "test": "echo \"Error: no test specified\"",
        "db:create-migration": "sequelize migration:create",
        "db:model": "sequelize-cli model:generate",
        "db:migrate": "sequelize db:migrate"
    },
    "repository": {
        "type": "git",
        "url": "hidden"
    },
    "dependencies": {
        "@auth0/s3": "1.0.0",
        "archiver": "5.3.1",
        "async": "3.2.4",
        "aws-sdk": "2.1230.0",
        "axios": "1.4.0",
        "base64url": "3.0.1",
        "body-parser": "1.20.2",
        "connect-multiparty": "2.2.0",
        "cors": "2.8.5",
        "dotenv": "16.3.1",
        "es6-promise": "4.2.8",
        "eslint-config-airbnb-base": "15.0.0",
        "express": "4.18.2",
        "express-jwt": "8.4.1",
        "fecha": "4.2.3",
        "googleapis": "120.0.0",
        "helmet": "7.0.0",
        "jira-client": "8.2.2",
        "jsonwebtoken": "9.0.0",
        "lodash": "4.17.21",
        "log4js": "6.9.1",
        "mandrill-api": "1.0.45",
        "moment": "2.29.4",
        "mysql2": "3.4.3",
        "node-cron": "3.0.2",
        "nodemon": "2.0.22",
        "oauth": "0.10.0",
        "request": "2.88.2",
        "sequelize": "6.32.1",
        "sharp": "0.32.1",
        "squel": "5.13.0",
        "twin-bcrypt": "2.1.1"
    },
    "devDependencies": {
        "eslint": "8.44.0",
        "eslint-plugin-import": "2.27.5",
        "eslint-plugin-prettier": "4.2.1",
        "prettier": "2.8.8",
        "sequelize-cli": "6.6.1"
    }
}
node.js angularjs nginx amazon-s3 aws-sdk
1个回答
0
投票

您可以分享响应标头吗?

© www.soinside.com 2019 - 2024. All rights reserved.