tus
项目描述
tus python集成
此包旨在成为tus可恢复上传标准的稳健实现,tus.io。
集成包括处理WebOb请求和Zope2请求的API。此外,您可以将其作为WSGI过滤器运行服务器。
该包旨在提供您将TUS协议集成到Python Web应用程序所需的一切。
选项
- tmp_file_dir
存储临时文件的目录
- send_file
默认情况下,它只会将请求体中的文件名发送,而不是实际的文件上传
- upload_valid_duration
在多少秒前清理旧上传
- upload_path
仅用于WSGI过滤器
基础
将POST发送到URL,以201响应返回临时文件上传URL的位置。上传URL是基本URL和正在进行的文件上传的唯一ID的组合。例如:/upload/432jjdsfjsd78387
对先前POST中响应的临时文件上传URL执行PATCH。这些可以是整个文件的块。
恢复
通过HEAD到发布的临时文件上传URL来获取已上传的当前大小
集成
WebOb兼容应用程序
提供了一个简单的Webob请求适配器以与API一起使用。此代码假设它将处理所有上传相关请求—这意味着
from tus import Tus, WebobAdapter
adapter = WebobAdapter(req)
options = {
'tmp_file_dir': '/tmp'
}
tus = Tus(adapter, **options)
if tus.valid:
tus.handle()
if tus.upload_finished:
fipath = tus.get_filepath()
# do something here
tus.cleanup_file()
else:
return adapter.resp
Zope2或Plone
此示例取自plone.app.widgets
adapter = Zope2RequestAdapter(req)
tus = Tus(adapter, **tus_settings)
if tus.valid:
tus.handle()
if not tus.upload_finished:
return
else:
filename = req.getHeader('FILENAME')
if tus.send_file:
filedata = req._file
else:
filepath = req._file.read()
filedata = open(filepath)
tus.cleanup_file()
WSGI过滤器
Python示例
from tus import Filter as TusFilter filtered = TusFilter(app, tmp_file_dir='/tmp', upload_path='/upload')
WSGI Paste配置示例
基本paste部署配置
[app:main] use = egg:MyEgg filter-with = tus [filter:tus] use = egg:tus#main upload_path = /upload tmp_file_dir = /tmp
或
[filter:tus]
use = egg:tus#main
upload_path = /upload
tmp_file_dir = /tmp
[app:main]
pipeline =
tus
egg:MyEgg
0.0
初始版本
项目详情
关闭
tus-1.0a1.zip的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 26f86352a9dd7f52351f54ead80d79a469378c442ce97dd5ef99160dffaba816 |
|
| MD5 | e276f0d9b46c5a77eaede454fc4e0cbe |
|
| BLAKE2b-256 | ed88bbc06ee5e9512a9bd8316e94c19583b756f040a5ccebce7c4ffc52fd8f19 |