我想上传一个大文件(> 1GB)(由客户端以html格式发送),并使用sanic将其存储在我的服务器中。
我不能使用request.files
参数,因为它将导致大文件的内存问题,因此我尝试将streaming与以下代码一起使用:
@app.post('/stream', stream=True)
async def handler(request):
f = open('./upload', 'wb')
times = 0
while True:
body = await request.stream.get()
if body is None:
break
f.write(body)
f.close()
使用此代码,因为流不仅包含文件内容,而且具有其他表单参数及其值,因此存储的文件无效。
所以我的问题是如何仅从整个流中分离上载文件的内容,以及如何从此流中获取其他表单参数的值。