An async Python client for the Cloudreve API.
Supports authentication, file operations, token management, and utilities—built on httpx with HTTP/2 support and aiofiles.
Version: 0.2.5
Python: >= 3.9
Active Development
This client library is under active development and is not yet feature-complete. It was built to satisfy specific use-cases and may change without warning.Not Production-Ready
Use at your own risk. Do not deploy this in production environments unless you fully understand its internals and have thoroughly tested it for your needs.Contributions, feedback, and issue reports are welcome—but please be cautious if you plan to rely on this library for critical workloads.
-
Health check (
ping()) -
Authentication
password_sign_in(email, password, captcha=None, ticket=None)refresh_token(refresh_token)generate_token(...)decode_token(...)is_token_valid()validate_token()
-
File operations
list_files(uri, page=0, page_size=50, order_by="created_at", order_direction="asc", next_page_token=None)get_file_info(file_uri, file_id, extended=False, folder_summary=False)create_download_url(uris, download=False, redirect=False, entity=None, use_primary_site_url=False, skip_error=False, archive=False, no_cache=False)get_download_url(uris, download=False, redirect=False, entity=None, use_primary_site_url=False, skip_error=False, archive=False, no_cache=False)update_file_content(file_uri, content, previous=None)create_upload_session(uri, filename, size, chunk_size, expire_in, ...)delete_upload_session(id, uri)delete_file(uris, unlink=False, skip_soft_delete=False)force_unlock(tokens)get_last_folder_or_file(uri)
-
Upload operations
upload_file(...)upload_parts_via_presigned_urls(...)complete_upload_via_complete_url(...)complete_s3_upload(...)
-
Download operations
download_file(...)save_url_as_file(url, save_dir, filename, extension, overwrite=True)
-
Workflow operations
extract_archive(...)
-
Utilities
read_file_as_bytes(path)get_headers(include_auth=True, include_content_type=True)
# Install from PyPI
pip install inocloudreve
# Install locally:
git clone https://github.com/nobandegani/InoCloudreve.git
cd InoCloudreve
pip install -e .import asyncio
from inocloudreve import CloudreveClient
async def main():
# Initialize the client
client = CloudreveClient()
client.init("https://your-cloudreve-instance.com")
try:
# Check if the server is reachable
await client.ping()
# Sign in
await client.password_sign_in("your-email@example.com", "your-password")
# List files in root directory
files = await client.list_files("/")
print(f"Found {len(files.get('objects', []))} files")
# Your other operations here...
finally:
# Always close the client
await client.close()
# Run the async function
asyncio.run(main())Mozilla Public License Version 2.0