A CLI tool for migrating files between cloud storage services
Project description
Cloney - Storage Migration CLI
Cloney is a lightweight command-line tool designed to migrate files between different cloud storage providers seamlessly. It supports AWS S3, Google Cloud Storage (GCS), Alibaba Cloud OSS, DigitalOcean Spaces, Azure Blob Storage, and Cloudflare R2, allowing you to move data efficiently.
Features
🔄 Migrate files between S3, GCS, OSS, Spaces, Azure Blob, and Cloudflare R2
⚡ Fast and efficient transfer with minimal configuration
🔧 Simple CLI usage for easy automation
✅ Supports large file transfers
🔐 Secure authentication using environment variables or config files
Installation
From Source (Python)
pip install cloney
Usage
Same Cloud Transfers
Migrate data within the same cloud provider:
AWS S3 to AWS S3
cloney s3 my-source-bucket s3 my-destination-bucket
Google Cloud Storage to Google Cloud Storage
cloney gcs my-source-bucket gcs my-destination-bucket
Azure Blob Storage to Azure Blob Storage
cloney azure my-source-container azure my-destination-container
Alibaba Cloud OSS to Alibaba Cloud OSS
cloney oss my-source-bucket oss my-destination-bucket
Cloudflare R2 to Cloudflare R2
cloney r2 my-source-bucket r2 my-destination-bucket
Cross-Cloud Transfers
Migrate data between different cloud providers:
AWS S3 to Google Cloud Storage
cloney s3 my-s3-bucket gcs my-gcs-bucket
Google Cloud Storage to Azure Blob Storage
cloney gcs my-gcs-bucket azure my-azure-container
Azure Blob Storage to Alibaba Cloud OSS
cloney azure my-azure-container oss my-oss-bucket
AWS S3 to DigitalOcean Spaces
cloney s3 my-source-bucket spaces my-destination-bucket
AWS S3 to Cloudflare R2
cloney s3 my-source-bucket r2 my-destination-bucket
Cloudflare R2 to Google Cloud Storage
cloney r2 my-r2-bucket gcs my-gcs-bucket
If you would like to create the destination bucket automatically, use the --create-destination-bucket flag:
cloney s3 my-source-bucket gcs my-destination-bucket --create-destination-bucket
If you want to verify the files between the source and destination buckets, use the --verify flag:
cloney s3 my-source-bucket gcs my-destination-bucket --verify
This will check for any mismatched or missing files between the two buckets.
Authentication
Cloney supports authentication via environment variables or configuration files:
Linux/macOS
AWS S3
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
Google Cloud Storage (GCS)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/gcs-key.json
Alibaba Cloud OSS
export OSS_ENDPOINT=your-endpoint
export OSS_ACCESS_KEY_ID=your-access-key
export OSS_ACCESS_KEY_SECRET=your-secret-key
Azure Blob Storage
export AZURE_STORAGE_CONNECTION_STRING="your-connection-string"
DigitalOcean Spaces
export SPACES_ACCESS_KEY=your-access-key
export SPACES_SECRET_KEY=your-secret-key
export SPACES_REGION=your-region
Cloudflare R2
export R2_ACCESS_KEY_ID=your-access-key-id
export R2_SECRET_ACCESS_KEY=your-secret-access-key
export R2_ACCOUNT_ID=your-account-id
Windows (PowerShell)
AWS S3
$env:AWS_ACCESS_KEY_ID="your-access-key"
$env:AWS_SECRET_ACCESS_KEY="your-secret-key"
Google Cloud Storage (GCS)
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\gcs-key.json"
Alibaba Cloud OSS
$env:OSS_ENDPOINT="your-endpoint"
$env:OSS_ACCESS_KEY_ID="your-access-key"
$env:OSS_ACCESS_KEY_SECRET="your-secret-key"
Azure Blob Storage
$env:AZURE_STORAGE_CONNECTION_STRING="your-connection-string"
DigitalOcean Spaces
$env:SPACES_ACCESS_KEY="your-access-key"
$env:SPACES_SECRET_KEY="your-secret-key"
$env:SPACES_REGION="your-region"
Cloudflare R2
$env:R2_ACCESS_KEY_ID="your-access-key-id"
$env:R2_SECRET_ACCESS_KEY="your-secret-access-key"
$env:R2_ACCOUNT_ID="your-account-id"
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
Cloney is licensed under the MIT License.
Contact
For questions or support, open an issue on GitHub.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cloney-1.1.2.tar.gz.
File metadata
- Download URL: cloney-1.1.2.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
151c2ad730662487269fa8d6d4b55450a58dd50e1e1662d24c5b9c28c25a8e7b
|
|
| MD5 |
a1bb8b1b315cd54a860de64518dd1702
|
|
| BLAKE2b-256 |
ab1c2801a30b111ecd3e78e0c56c73ea245abaec747d2c769fc6e641f6972996
|
File details
Details for the file cloney-1.1.2-py3-none-any.whl.
File metadata
- Download URL: cloney-1.1.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66831aeade7b46c497110709a06bcec5d998e15f65d981a6080a6fe3209fc15e
|
|
| MD5 |
9d1a354f97e3406b0a29acbb55766d80
|
|
| BLAKE2b-256 |
22e496547059d5253de19b693693b897fe422fcc6d943d447dea53286c297ce7
|