记一次文件上传远程服务器问题

15号客户反映,在上传视频大文件(大概是500兆往上)的时候,前端会表现出:慢、不能上传、进度条100% pass等表现。
针对这个问题,起初很是不知道什么缘故。于是各种找原因。试着测试了下上传大视频文件,发现后台log:[INFO][2019-11-15 15:24:46,429][16204][MainThread:18256][http1connection.py:253][_read_message][Malformed HTTP message from 100.100.100.100: Content-Length too long]
写入字节数太大?
按理说没有对上传做什么限制啊。
于是问前端大佬,做没做什么限制,大佬找了找前端的问题,说可能是nginx做了限制,后面放开限制。
这时,我又去做了个测试,上传500兆往上的视频,还是不行。
这下完了。问题应该在后端这。
绞尽脑汁,突然想到,好像有个地方后端当初做了限制:

from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop


import os
from app import create_app


if __name__ == '__main__':
    app1 = create_app()
    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))

    # Execution will block here until Ctrl+C (Ctrl+Break on Windows) is pressed.
    try:
        http_server = HTTPServer(WSGIContainer(app1), max_buffer_size=504857600, max_body_size=504857600)
        http_server.listen(21603)
        IOLoop.instance().start()
    except (KeyboardInterrupt, SystemExit):
        pass

上面的http_server = HTTPServer(WSGIContainer(app1), max_buffer_size=504857600, max_body_size=504857600)这里有个max_buffer_sizemax_body_size,想到可能是这里的问题,于是换了个参数值,改为原来的两倍(http_server = HTTPServer(WSGIContainer(app1), max_buffer_size=1009715200, max_body_size=1009715200)),再次测试,问题解决,顺利上传上去了。

反思:1、这段代码是单位的一个技术大牛写的,没怎么留意这里的问题,导致问题发现慢;2、自己技术非常菜,并且排错纠错的速度很慢,原因分析不怎么快等等。

猜你喜欢

转载自www.cnblogs.com/sirxy/p/11880766.html