我们正在开发需要能够上传10+ gb文件的软件。
我的退步只是简单地分块数据并向django发出重复的POST请求,但是我想知道Django和WSGI是否可以为单个http请求处理“transfer-encoding:chunked”?
答案 0 :(得分:1)
通常,Django文档说明的方式应该足够了:
with open('some/file/name.txt', 'wb+') as destination:
for chunk in request.FILES['file'].chunks():
destination.write(chunk)
但如果没有,你可以尝试django-chunked-upload。
答案 1 :(得分:0)
从技术上讲,WSGI规范不允许分块请求内容。但是,某些WSGI服务器支持非官方扩展,以指示正在提供具有未指定/可变长度的请求内容。这可用于启用分块请求内容,尽管您可能还需要配置WSGI服务器以允许分块请求。
但问题是我不确定Django是否支持这种非正式扩展。
你应该研究的是WSGI的非官方wsgi.input_terminated
扩展以及Django的任何添加是否支持它。然后确定您使用的WSGI服务器是否支持该扩展。更新的mod_wsgi和uWSGI版本支持它。我不确定枪炮。