跳转到主要内容

tus

项目描述

tus python集成

此包旨在成为tus可恢复上传标准的稳健实现,tus.io

集成包括处理WebOb请求和Zope2请求的API。此外,您可以将其作为WSGI过滤器运行服务器。

该包旨在提供您将TUS协议集成到Python Web应用程序所需的一切。

选项

tmp_file_dir

存储临时文件的目录

send_file

默认情况下,它只会将请求体中的文件名发送,而不是实际的文件上传

upload_valid_duration

在多少秒前清理旧上传

upload_path

仅用于WSGI过滤器

基础

  1. 将POST发送到URL,以201响应返回临时文件上传URL的位置。上传URL是基本URL和正在进行的文件上传的唯一ID的组合。例如:/upload/432jjdsfjsd78387

  2. 对先前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 (17.7 kB 查看哈希值)

上传时间 源代码

由以下组织支持