大文件传输主要技术瓶颈都有哪些?如何处理的?

[图片] 首先,这个http协议的限制与2GB文件大小是什么关系?个人觉得这个2GB大小限制是java数组Integer.maxValue导致的 字节…
关注者
338
被浏览
102,886
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

看到了就来回答一下,先说我知道的结论,算是抛砖引玉:

1.不是http的限制。以form-data上传为例,你可以在form-data里放任意大的东西。你的文件其实是被转化成二进制放在form-data里,然后传给服务器的

2.框架里可以设置每个request可接受的最大的大小,比如tornado,参数在

tornado.httpserver.HTTPServer(tornado_app(),max_buffer_size=MAX_BUFFER_SIZE)


用python 的tornado做了测试:

class UploadFile2OssHandler(CustomTornadoHandler):

    executor = concurrent.futures.ThreadPoolExecutor()

    @run_on_executor
    def post(self):
        """
        提交
        """
        action = self.get_argument("action")
        file_meta_list = self.request.files["file"]
        file_full_name = file_meta_list[0]["filename"]
        file_name = file_full_name.split(".")[0]
        try:
            folder_path = ""
            if action == "upload_mt_csv_file":
                folder_path = MT_MANAGEMENT_FOLDER_PATH
            if not folder_path:
                raise ValueError("上传参数错误,请更正")
            oss_obj = CustomOss2()
            time.time.sleep(200)
            res = oss_obj.upload2oss(os.path.join(folder_path,file_full_name),file_meta_list[0]["body"],1)
            logging.info(res)
        except:
            pass

最后的结果就是,