File upload 使用@stream\u request\u body在tornado中上载大型文件

File upload 使用@stream\u request\u body在tornado中上载大型文件,file-upload,tornado,File Upload,Tornado,@流请求体 类StreamHandler(RequestHandler): def post(自我): self.temp_file.close()文件 使用上面的代码,我可以上传文件,但原始数据格式如下所示 -----------------------------6552719992117258671800152707 内容配置:表单数据;name=“dest” csv -----------------------------6552719992117258671800152707 内容配

@流请求体 类StreamHandler(RequestHandler): def post(自我): self.temp_file.close()文件

使用上面的代码,我可以上传文件,但原始数据格式如下所示

-----------------------------6552719992117258671800152707 内容配置:表单数据;name=“dest”

csv -----------------------------6552719992117258671800152707 内容配置:表单数据;name=“承运人”

带宽 -----------------------------6552719992117258671800152707 内容配置:表单数据;name=“file1”;filename=“test.csv” 内容类型:文本/csv

上传文件的内容如下

如何从文件中解析请求参数并分离上传文件的数据?
在tornado中是否有其他方法上载大文件(大约2GB)

这是HTML表单使用的多部分协议。Tornado目前只能在一次看到所有数据的情况下解析这些数据,而不是在流式上传中。有一个第三方库应该能够处理此问题:。有关更多信息,请参阅本期:


如果您控制客户机,那么使用普通HTTP PUT而不是HTML多部分表单协议可能会更简单。这不需要在服务器端进行任何特殊处理

需要python>3.5。我需要模块来处理python 2.7中提到的模块如何
def prepare(self):

     max_buffer_size = 4 * 1024**3 # 4GB
     self.request.connection.set_max_body_size(max_buffer_size)
     self.temp_file = open("test.txt","w")


def data_received(self, chunk):
    self.temp_file.write(chunk)