Synchronise files between a local cache and an SFTP server
Project description
Synchronise files piecemeal back and forth between a local cache and a remote SFTP server.
Use case
You have a client that sometimes needs to syncronise files to and from an SFTP server.
open() a file whether it’s remote or local. * If the file is available locally, use the local copy. * If the local file doesn’t exist, download it and then use the local copy.
add() files to an upload package, then push() to upload all locally queued files.
This model is simplistic, and will clobber any changes at the other end if a file with the same name exists. If you want to avoid that, you may be better off using Git or the like.
How to use:
import sftpsyncer from sftpsyncer import syncagent sagent = syncagent(hostname="remote_sagenth.example.com", host_port="1222", username="theuser", key_path="/home/theuser/.sagenth/key", local_root="/tmp/cache", remote_root="/upload_target") # upload local files sagent.upload_queue.add("myfile.txt") sagent.upload_queue.add("docs/readme.txt") sagent.push() # upload whether or not remote files exist # auto-get remote files, reading from cache when available fh1 = sagent.open("myfile.txt") # file is already local, return local fh fh2 = sagent.open("remote.txt") # file is not local, transfer to local cache, return local fh # exceptions try: fh3 = sagent.open("not_anywhere.txt") except sftpsyncer.exceptions.FileNotFound as e: print "File does not exist on local or remote" try: fh5 = sagent.open("ssh_server_unavailable.txt") except sftpsyncer.exceptions.ConnectionError as e: print "Remote SFTP service appears to be unavailable"
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.
Source Distribution
File details
Details for the file sftpsyncer-0.1.4.tar.gz
.
File metadata
- Download URL: sftpsyncer-0.1.4.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d472e0b18c13dda9d3000815e3eb56abee5b64b2511de8d2ed2344884d143f7a |
|
MD5 | fce5d700eefb886c1991692a4a08c52c |
|
BLAKE2b-256 | 3e2d02246d8d7f19177966fdf15041c5316650c914535970ab5ff8bbd2d035b6 |