Skip to main content

fluidcloud — Python SDK for FluidCloud

Official Python client for FluidCloud — file storage with shareable raw links and stable public (hotlinkable) URLs. The SDK hides the upload plumbing (presign → direct-to-storage PUT → complete, including multipart for large files) behind a single upload() call.

📚 Full documentation: https://cloud.fluidvip.com/docs

Install

pip install fluidcloud

Requires Python 3.8+. The only runtime dependency is httpx.

Quick start

from fluidcloud import FluidCloud

fc = FluidCloud(api_key="fck_live_...")        # base_url defaults to production

# A Space is a top-level bucket; folders and files live inside it.
space = fc.spaces.create("Brand Assets")

# Upload — one call hides presign -> PUT -> complete (+ multipart for big files).
asset = fc.files.upload("logo.png", space_id=space.id, public=True)
print(asset.public_url)        # stable, inline, cacheable hotlink (use as <img src>)

# Or mint links explicitly:
public = fc.files.public_url(asset.id)                 # permanent (never expires)
signed = fc.files.signed_url(asset.id, expires_in_days=7, permission="view")

Authentication

Create an API key in the dashboard (Settings → Developer; an active subscription is required) and pass it to the client. The key (fck_live_… / fck_test_…) is sent as X-API-Key. Keys are scoped; a call outside a key's scopes raises PermissionError_ (HTTP 403 insufficient_scope).

API surface

fc.spaces.list() / create(name)
fc.folders.list(space_id, parent_id=None) / create(name, space_id, parent_id=None)
          / rename(id, name) / move(id, parent_id) / delete(id) / restore(id)
fc.files.upload(path_or_bytes_or_fileobj, space_id, folder_id=None,
                name=None, content_type=None, public=False)
         .list(space_id, folder_id=None) / get(id)
         .rename(id, name) / move(id, folder_id) / delete(id) / restore(id)
         .download_url(id)                # short-lived download URL
         .public_url(id)                  # permanent public hotlink (Link)
         .signed_url(id, expires_in_days=7, permission="view")   # expiring (Link)
fc.shares.list(file_id=None, include_inactive=False) / revoke(share_id)
fc.quota.usage()                          # bytes_used / bytes_limit / links_*

public_url vs signed_url: a public link never expires and is served inline + edge-cached (ideal for embedding an image in a page, a bot message, or a vision model's image_url). A signed link expires (1–365 days). Use fc.shares.revoke(link.id) to revoke either.

Errors

All errors derive from FluidCloudError: AuthError (401), QuotaExceededError (402), PermissionError_ (403), NotFoundError (404), ConflictError (409, e.g. sharing a file still being scanned), or ApiError.

Notes

  • The client is synchronous (httpx) and works as a context manager: with FluidCloud(api_key=...) as fc: ....
  • The SDK targets the versioned API (/api/v1).
  • Override the API origin with base_url=... if you have been given a different endpoint.

MIT licensed.

Metadata

Release files for fluidcloud 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fluidcloud 0.1.0
File Size Uploaded Provenance Actions
fluidcloud-0.1.0.tar.gz 11.8 kB Without provenance Details for fluidcloud-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fluidcloud 0.1.0
File Interpreter ABI Platform Actions
fluidcloud-0.1.0-py3-none-any.whl Python 3 none any Details for fluidcloud-0.1.0-py3-none-any.whl

Total release size: 22.3 kB

Release files / fluidcloud-0.1.0.tar.gz

Download URL fluidcloud-0.1.0.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2e88f8a3e94cd64a3c236d5a758c561d633ecef553b670de028782a30f0415aa
BLAKE2b-256 checksum
How to use checksums
04065589dec968eba7ecd1dee95e12149db7fbe0a89eb7168ff075eb6c67e87a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / fluidcloud-0.1.0-py3-none-any.whl

Download URL fluidcloud-0.1.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c64c615da5975ea8af209a0d534ed91efbe350f58fdb57a287f0d69c5b9d137
BLAKE2b-256 checksum
How to use checksums
a0971f27babd95bb3c50bea2a07971426c955d20977589ddf785e018ba8e4d03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Security for fluidcloud 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page