Skip to main content

Cloudreve api client

Project description

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

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

inocloudreve-0.2.6.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inocloudreve-0.2.6-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file inocloudreve-0.2.6.tar.gz.

File metadata

  • Download URL: inocloudreve-0.2.6.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for inocloudreve-0.2.6.tar.gz
Algorithm Hash digest
SHA256 56afb129815ea987eca5db6596bb479046dbf12c7be466cf8bae9633f745a6eb
MD5 5ff8c939c5f3828b1463a609bec13245
BLAKE2b-256 928c6c360de0730ac6ac0388f612cbf28e8d9d20592ee5a25f98a3da7114cbd5

See more details on using hashes here.

File details

Details for the file inocloudreve-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: inocloudreve-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for inocloudreve-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 66e93e7bcb2dac95d150bf9f9a7b46fcb007c8311a495cdce048449548a3a4c7
MD5 2c29bf48824165b37cfe6949c43e2430
BLAKE2b-256 3947834a261ef8e30150fe4e7949e0964e72b96d78f24972252e708d3b30671e

See more details on using hashes here.

Supported by

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