Object storage API

Buckets, uploads and versions with one HTTP contract.

Space stores blobs in versioned buckets and hands out short-lived signed URLs. Uploads go directly to the storage tier, so your application never proxies file bytes.

Direct uploads

Request a signed target, PUT the file body, then confirm the object. The control plane is never in the data path.

Versioned buckets

Every overwrite keeps the previous object. Restore or purge a version by id without copying the whole bucket.

Predictable egress

Transfer is metered per bucket and reported daily, so a shared bucket does not hide behind the account total.

Create a signed upload

curl https://space.jdcity.cc/v1/buckets/assets/uploads \
  -H "authorization: Bearer $TOKEN" \
  -H "content-type: application/json" \
  -d '{"key":"logo.svg","content_type":"image/svg+xml"}'

The response contains a URL valid for ten minutes and the object id to use when confirming the upload.

How it fits together

  • Buckets group objects and set a retention policy.
  • Objects carry content type, size and checksum.
  • Versions are addressed as bucket/object@version.

What you operate

  • One signing key per bucket.
  • Your own upload client.
  • Nothing else: no gateway, no cache tier.