Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

实现大文件上传教程(有这个需求的可以看看) #493

Open
ADKYUSHU12321 opened this issue Jun 1, 2022 · 11 comments
Open

Comments

@ADKYUSHU12321
Copy link

ADKYUSHU12321 commented Jun 1, 2022

首先在此感谢大佬的开源,该程序是我见过最棒的开源聊天室,对我个人而言,如果只能将大于1mb的文件上传到阿里云oss,不管这些文件有多大,用户一多起来,那流量费太贵了,看着socket.io的文档折腾了一下,各位大佬勿喷。

前言:

请注意!!!由于上传大文件需要很多负载,请勿在低配服务器上修改使用!

生产环境下可能遭到流量攻击? 请慎用!我1h1g的测试机器上传100mb测试文件直接卡死。

推荐性能配置

44444

第一步:修改服务端

cd fiora/packages/server/src

修改app.ts里的第37行和38行:

pingTimeout: 10000, 
pingInterval: 5000,

将这两个的数值改成你自己需要的数值,单位为毫秒,大概意思就是增加socket.io的连接超时,时间越长,你上传大文件时就不会因为超时断开连接。

cd fiora/packages/server/node_modules/engine.io/lib

修改server.js里的28行和29行:

        pingTimeout: 20000,
        pingInterval: 25000,

将这两个的数值改成你自己需要的数值,单位为毫秒,同上。

修改server.js里的31行:
maxHttpBufferSize: 1e6,

其中1e6是b字节的数值,这里是限制你上传文件的大小,你可以根据自己的需要更改。

111

(貌似这里只能用b字节?那就需要你自己去换算)

第二步:修改客户端配置文件

vi fiora/packages/config/client.ts

    maxFileSize: process.env.MaxFileSize
        ? parseInt(process.env.MaxFileSize, 10)
        : MB * 10,

其中: MB * 10, 把10改成你需要的数值,单位MB,这里是在客户端限制你上传文件的大小。

第三步:修改Nginx上传文件限制和连接超时

1212
2222

这里用的宝塔,大家可以自己在nginx.conf修改。

第四步:

重构: yarn build:web
启动: yarn start

效果:

3333

ps:最新测试,不知道为什么用Nginx反代后的域名上传文件会失败,直接ip上传没问题,貌似是Nginx的问题?抓包了一下返回504,502

1

$8~)GE $5WM@ZAL1IO4(NN3

@yinxin630
Copy link
Owner

Great~ 👍

@LWBobo
Copy link

LWBobo commented Nov 20, 2022

我是使用docker部署的,按照你的方法进入容器,修改了相关代码还是不行,上传文件直接提示文件过大,我设置的文件大小是200M,修改了但是好像没有用...大佬你知道怎么回事吗?

@LWBobo
Copy link

LWBobo commented Nov 20, 2022

解决了,重新build一下就好了...大意了

@cancundeyingzi
Copy link

有没有成品啊,,一直报错,,,,,,,,,,,,,

@cancundeyingzi
Copy link

解决了,重新build一下就好了...大意了

我build一直报错...查了报错方法也不行.

@LWBobo
Copy link

LWBobo commented Jan 3, 2023

yarn build:web
进入docker容器修改完参数,执行上边这个命令,执行完重启容器就行了。

@cancundeyingzi
Copy link

yarn build:web 进入docker容器修改完参数,执行上边这个命令,执行完重启容器就行了。

是,但是我yarn build:web一直error,报错信息别的issues也有提及,但是并没给出解决方案

@LWBobo
Copy link

LWBobo commented Jan 3, 2023

这...我修改完重新编译,直接就好了....没出现什么报错啊,前端报错一般都是包下载的问题之类的,但是现在什么包都有了...只需要重新编译一下怎么会出错...会不会是你改参数的时候改错了删了点什么东西之类的

@cancundeyingzi
Copy link

image

@cancundeyingzi
Copy link

yarn build:web

我确定不是我的问题,

@cancundeyingzi
Copy link

这...我修改完重新编译,直接就好了....没出现什么报错啊,前端报错一般都是包下载的问题之类的,但是现在什么包都有了...只需要重新编译一下怎么会出错...会不会是你改参数的时候改错了删了点什么东西之类的

我整个docker删掉重新下载了,不修改任何参数一样报错,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants