A Python client for the tus resumable upload protocol -> http://tus.io
Project description
tus-py-client ![Build Status](https://pypi-camo.freetls.fastly.net/3a0f9828b13ad4cf94ef0a84b2dd6de3da11da75/68747470733a2f2f6769746875622e636f6d2f7475732f7475732d70792d636c69656e742f616374696f6e732f776f726b666c6f77732f43492e796d6c2f62616467652e737667)
tus is a protocol based on HTTP for resumable file uploads. Resumable means that an upload can be interrupted at any moment and can be resumed without re-uploading the previous data again. An interruption may happen willingly, if the user wants to pause, or by accident in case of a network issue or server outage.
tus-py-client is a Python client for uploading files using the tus protocol to any remote server supporting it.
Documentation
See documentation here: http://tus-py-client.readthedocs.io/en/latest/
Get started
pip install tuspy
Now you are ready to use the api.
from tusclient import client
# Set Authorization headers if it is required
# by the tus server.
my_client = client.TusClient('http://tusd.tusdemo.net/files/',
headers={'Authorization': 'Basic xxyyZZAAbbCC='})
# Set more headers.
my_client.set_headers({'HEADER_NAME': 'HEADER_VALUE'})
uploader = my_client.uploader('path/to/file.ext', chunk_size=200)
# A file stream may also be passed in place of a file path.
fs = open('path/to/file.ext')
uploader = my_client.uploader(file_stream=fs, chunk_size=200)
# Upload a chunk i.e 200 bytes.
uploader.upload_chunk()
# Uploads the entire file.
# This uploads chunk by chunk.
uploader.upload()
# you could increase the chunk size to reduce the
# number of upload_chunk cycles.
uploader.chunk_size = 800
uploader.upload()
# Continue uploading chunks till total chunks uploaded reaches 1000 bytes.
uploader.upload(stop_at=1000)
If the upload url is known and the client headers are not required, uploaders can also be used standalone.
from tusclient.uploader import Uploader
my_uploader = Uploader('path/to/file.ext',
url='http://tusd.tusdemo.net/files/abcdef123456',
chunk_size=200)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.