No description
Find a file
2025-04-01 21:11:27 +02:00
migrations WIP: v1.0.0 2025-04-01 21:11:27 +02:00
run WIP: v1.0.0 2025-04-01 21:11:27 +02:00
src WIP: v1.0.0 2025-04-01 21:11:27 +02:00
.env.example WIP: v1.0.0 2025-04-01 21:11:27 +02:00
.gitignore WIP: v1.0.0 2025-04-01 21:11:27 +02:00
Cargo.lock WIP: v1.0.0 2025-04-01 21:11:27 +02:00
Cargo.toml WIP: v1.0.0 2025-04-01 21:11:27 +02:00
README.md WIP: v1.0.0 2025-04-01 21:11:27 +02:00
rustfmt.toml WIP: v1.0.0 2025-04-01 21:11:27 +02:00

minna-caos

Content-Addressed Object Storage server intended for usage with Minna.

Features

  • resumable uploads (via tus)

  • automatic media type (“MIME type”) detection

  • multiple storage backends:

    • local filesystem
    • S3-compatible
    • FTP
    • Google Drive
    • OneDrive
  • direct download from the underlying storage backend (if supported)

  • named storage buckets

  • object operations:

    • upload
    • set target buckets
    • delete
  • outgoing webhooks

Upload steps

  • client to app: request to upload something, returns {upload_id}

    • app to caos: POST /uploads returns {upload_ìd}
  • client to caos: PATCH /uploads/{upload_id} with upload data, optionally using tus

  • app to caos: GET /staging-area/{upload_id}, returns metadata (including {hash}) as soon as the upload is complete

  • app to caos: POST /staging-area/{upload_id}/accept with target bucket IDs

Roadmap

  • basic uploading
  • upload expiration
  • media type detection
  • graceful shutdown
  • metadata endpoints
  • accepting uploads
  • add code comments
  • more storage backends