Skip to content

Latest commit

 

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InoCloudreve - Cloudreve Python Client

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


Important Note

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.


Features

  • 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)

Installation

# Install from PyPI
pip install inocloudreve

# Install locally:
git clone https://github.com/nobandegani/InoCloudreve.git
cd InoCloudreve
pip install -e .

Usage

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())

License

Mozilla Public License Version 2.0

About

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.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages