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

是否可以使用Django执行流http请求?,django,wsgi,Django,Wsgi,我们正在开发的软件需要能够上传10+gb的文件 我的退路是简单地对数据进行分块并向django发出重复的POST请求,但是我想知道django和WSGI是否可以为单个http请求处理“传输编码:分块”?通常,django文档状态应该足够了: with open('some/file/name.txt', 'wb+') as destination: for chunk in request.FILES['file'].chunks(): destina

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


我的退路是简单地对数据进行分块并向django发出重复的POST请求,但是我想知道django和WSGI是否可以为单个http请求处理“传输编码:分块”?

通常,django文档状态应该足够了:

  with open('some/file/name.txt', 'wb+') as destination:
        for chunk in request.FILES['file'].chunks():
            destination.write(chunk)

但是如果没有,您可以尝试。

从技术上讲,WSGI规范不允许分块请求内容。然而,一些WSGI服务器支持一个非官方的扩展,以指示正在提供未指定/可变长度的请求内容。这可以用来处理分块请求内容,尽管您可能还需要配置WSGI服务器以允许分块请求

但问题是,我不确定Django是否支持这种非官方的扩展

您应该研究的是wsgi的非官方的
wsgi.input\u-terminated
扩展,以及Django的任何附加组件是否支持它。然后确定您使用的WSGI服务器是否支持该扩展。更多最新版本的mod_wsgi和uWSGI支持它。我不确定gunicorn的情况