Skip to main content

Synchronize files to a destination(local/remote) using a incremental algorithm

Project description

blocksync

This library allows blocksync script to be used as Python package, and supports more convenient and various functions than blocksync script.

Build PyPi PyVersions

Prerequisites

  • Python 3.8 or later

Features

  • Synchronize the destination (remote or local) files using an incremental algorithm.
  • Supports all synchronization directions. (local-local, local-remote, remote-local)
  • Support for callbacks that can run before(run once or per workers), after(run once or per workers), and during synchronization of files
  • Support for synchronization suspend/resume, cancel.
  • Most methods support method chaining.
  • You can see the overall progress in a multi-threaded environment.
  • You can proceed synchronization in the background.
  • You can specify the number of workers (number of threads) to perform synchronization.

Installation

pip install blocksync

Quick start

When sync from/to remote, you can check the SSH connection options in paramiko docs.

from blocksync import local_to_local


manager, status = local_to_local("src.txt", "dest.txt", workers=4)
manager.wait_sync()
print(status)

# Output
[Worker 1]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 2]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 3]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 4]: Start sync(src.txt -> dest.txt) 1 blocks
{'workers': 4, 'chunk_size': 250, 'block_size': 250, 'src_size': 1000, 'dest_size': 1000, 'blocks': {'same': 4, 'diff': 0, 'done': 4}}

TODO

  • Provide CLI
  • Write docs and build a docs website

License

MIT License (For more information about this license, please see this)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blocksync-3.0.1.tar.gz (9.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page