是否可以使用Django进行流http请求?

时间:2018-01-29 20:45:51

标签: django wsgi

我们正在开发需要能够上传10+ gb文件的软件。

我的退步只是简单地分块数据并向django发出重复的POST请求,但是我想知道Django和WSGI是否可以为单个http请求处理“transfer-encoding:chunked”?

2 个答案:

答案 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版本支持它。我不确定枪炮。