Transporter is a Python library that provides a consistent API for navigating FTP, SSH, local file systems, and more.
Tranporter comes with three helper functions for uploading or downloading files: get, put, transport
from transporter import get, put, transport
# Example use
data = get('http://example.com/path/to/file.txt')
put('ftp://josh:[email protected]/path/to/new_file.txt', 'file contents')
transport('http://josh:[email protected]/path/to/file.txt',
'/Users/josh/Desktop/file.txt')
Transporter instances are easily created from URI string or an object compatible with the urlparse.ParseResult interface.
from transporter import Transporter
ftp = Transporter('ftp://user:[email protected]/initial/path/')
The basic interface for Transporter objects should be familiar to anyone with basic experience navigating the *nix command line.
Transporter.cd(path)
change directory to path
Transporter.pwd()
print current working directory
Transporter.mv(source, destination)
move a file or folder from source to destination
Transporter.mkdir(path)
create a new directory
Transporter.rmdir(path)
delete directory at path
Transporter.rm(path)
delete file at path
from transporter import Transporter
t = Transporter('file:/Users/josh')
t.mkdir('new_folder')
t.cd('new_folder')
t.mkdir('sub_folder')
print t.pwd() # /Users/josh/new_folder
print t.ls() # ['sub_folder']
t.mv('sub_folder', 'new_name')
t.rmdir('new_name')
t2 = Transporter('ftp://joshmaker:[email protected]/folder/')
t2.mkdir('new_folder')
t2.mkdir('new_folder/sub_folder')
t2.ls('new_folder') # ['sub_folder']
Additionally, Transporter objects provide the following methods for creating and accessing file data:
Transporter.get(path)
Retrieve a file object located at path
Transporter.put(data, path)
Creates a new file located at path that contains data
from transporter import Transporter
t1 = Transporter('file:/Users/josh')
data = t1.get('local_file.txt')
t2 = Transporter('ftp://joshmaker:[email protected]/folder/')
t2.put('remote_file.txt', data)
Note: Transporters for HTTP and HTTPS only support pwd, cd, get, and put