No description
migrations | ||
run | ||
src | ||
.env.example | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md | ||
rustfmt.toml |
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}
- app to caos:
-
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