将大文件分块上传到Django,中断上传后可继续上传。
项目描述
这个简单的django应用程序允许用户将大文件分块上传到Django,中断上传后可继续上传。
此应用程序旨在与JQuery-File-Upload配合使用,由Sebastian Tschan开发(文档)。
许可证: MIT-Zero。
演示
如果您想查看使用此模块的非常简单的Django演示项目,请查看django-chunked-upload-demo。
安装
通过pip安装
pip install django-chunked-upload
然后将其添加到您的Django INSTALLED_APPS
INSTALLED_APPS = (
# ...
'chunked_upload',
)
典型用法
首先向链接到 ChunkedUploadView(或任何子类)的URL发送一个初始POST请求,附带文件的第一个块。块文件的名称可以在视图中被覆盖(类属性 field_name)。示例
{"my_file": <File>}
作为回应,服务器会返回响应,包含 upload_id,当前 offset 以及上传何时会过期(expires)。示例
{ "upload_id": "5230ec1f59d1485d9d7974b853802e31", "offset": 10000, "expires": "2013-07-18T17:56:22.186Z" }
使用upload_id重复POST后续块,以标识与ChunkedUploadView(或任何子类)关联的URL上的上传。示例
{ "upload_id": "5230ec1f59d1485d9d7974b853802e31", "my_file": <File> }
服务器将继续以upload_id、当前offset和过期日期(expires)响应。
最后,上传完成后,将向与ChunkedUploadCompleteView(或任何子类)关联的URL发送POST请求。此请求必须包含upload_id和MD5校验和(十六进制)。示例
{ "upload_id": "5230ec1f59d1485d9d7974b853802e31", "md5": "fc3ff98e8c6a0d3087d515c0473f8677" }
如果一切正常,服务器将以状态码200响应,并在get_response_data方法中返回数据(如果有)。
可能的错误响应
用户未认证。服务器响应403(禁止)。
上传已过期。服务器响应410(已消失)。
upload_id与任何上传不匹配。服务器响应404(未找到)。
在指定的键中找不到任何块文件。服务器响应400(错误请求)。
请求不包含Content-Range头。服务器响应400(错误请求)。
文件大小超出限制(如果指定)。服务器响应400(错误请求)。
偏移量不匹配。服务器响应400(错误请求)。
md5校验和不匹配。服务器响应400(错误请求)。
设置
将这些变量之一添加到您的项目设置中,以覆盖它们。
CHUNKED_UPLOAD_EXPIRATION_DELTA
上传创建后多长时间过期。
默认值:datetime.timedelta(days=1)
CHUNKED_UPLOAD_PATH
上传文件在完成前将存储的路径。
默认值:'chunked_uploads/%Y/%m/%d'
CHUNKED_UPLOAD_TO
upload_to用于Model的FileField。
默认值:CHUNKED_UPLOAD_PATH + '/{{ instance.upload_id }}.part'
CHUNKED_UPLOAD_STORAGE_CLASS
存储系统(应为类)。
默认值:None(使用默认存储系统)
CHUNKED_UPLOAD_ENCODER
用于编码响应数据的函数。接收一个字典并返回一个字符串。
默认值:DjangoJSONEncoder().encode
CHUNKED_UPLOAD_CONTENT_TYPE
响应数据的Content-Type。
默认值:'application/json'
CHUNKED_UPLOAD_MAX_BYTES
可以上传的数据量(以字节为单位)。None表示无限制。
默认值:None
CHUNKED_UPLOAD_MODEL_USER_FIELD_NULL
ChunkedUpload模型的user字段的null选项的值
默认值:True
CHUNKED_UPLOAD_MODEL_USER_FIELD_BLANK
ChunkedUpload模型的user字段的blank选项的值
默认值:True
支持
如果您发现任何错误或想提出新功能,请使用问题跟踪器。我会很高兴帮助您!:-)
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发版
django-chunked-upload-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb8961029d6a9febb974fb24f529c7773c61a9e6467825db861aae29e1f0c978 |
|
MD5 | 2919074e9261f5febaabe093716897ab |
|
BLAKE2b-256 | 95cfbdfbbdefa3c33ffffcbf0229d1496bb9a8497d76dfd5f312ed6e76e14291 |
django_chunked_upload-2.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f81ce8d7a5df87c75c971b31dd15961712e729f8fbb38a9398c85cc01f89316d |
|
MD5 | 170f678dea6337d8bb922d3357bb520d |
|
BLAKE2b-256 | c274694075d93d4ed7637af92a62ef13370758c3b86c8d9559ab9507679aad4b |