A python wrapper for rclone.
Project description
rclone-python ☁️
A python wrapper for rclone that makes rclone's functionality usable in python. rclone needs to be installed on the system for the wrapper to work.
Features ⚒️
- Copy, move and sync files between remotes
- Delete and prune files/directories
- List files in a directory including properties of the files.
- List available remotes.
- Generate hashes from files or validate them with their hashsum.
- Create new remotes
- Check available remotes
- Create and manage public links.
- Check the currently installed rclone versions and if updates are available.
Installation 💾
rclone_python can be installed using pip
pip install rclone-python
or by cloning this repository and running from within the root of the project
pip install .
How to use 💡
All functionally of this wrapper is accessible through rclone
.
The following example checks if rclone is installed.
from rclone_python import rclone
print(rclone.is_installed())
# True
Create new remote
Create a new rclone remote connection with rclone's default client-id and client-secret.
from rclone_python import rclone
from rclone_python.remote_types import RemoteTypes
rclone.create_remote('onedrive', RemoteTypes.onedrive)
Additionally, client-id and client-secret can be used with many cloud providers.
from rclone_python import rclone
from rclone_python.remote_types import RemoteTypes
rclone.create_remote('onedrive', RemoteTypes.onedrive, client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET')
Copy
from rclone_python import rclone
# copy all file in the test_dir on OneDrive to the local data folder.
rclone.copy('onedrive:data', 'data', ignore_existing=True, args=['--create-empty-src-dirs'])
# ☁ Copying: 48%|████▊ | 151.1/315.309 MiB, 13.9 MiB/s, ETA: 11s
Delete
Delete a file or a directory. When deleting a directory, only the files in the directory (and all it's subdirectories) are deleted, but the folders remain.
from rclone_python import rclone
# delete a specific file on onedrive
rclone.delete('onedrive:data/video1.mp4')
Prune
from rclone_python import rclone
# remove the entire test_dir folder (and all files contained in it and it's subdirectories) on onedrive
rclone.purge('onedrive:test_dir')
Get Hash
from rclone_python import rclone
from rclone_python.hash_types import HashTypes
print(rclone.hash(HashTypes.sha1, "box:data")
# {'video1.webm': '3ef08d895f25e8b7d84d3a1ac58f8f302e33058b', 'video3.webm': '3ef08d895f25e8b7d84d3a1ac58f8f302e33058b', 'video2.webm': '3ef08d895f25e8b7d84d3a1ac58f8f302e33058b'}
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
Built Distribution
Hashes for rclone_python-0.1.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98f4bccc96e0c12c5f595575ca44d07348143a4cc1bdc862c7139d8dd727d565 |
|
MD5 | 10aad76505a97fcd3cafb5e2937be1ec |
|
BLAKE2b-256 | 2df238ca0323ddad81e9b01b737172065f7e354618f97f3f8db25df5a29b61e6 |