47 lines
No EOL
1 KiB
Markdown
47 lines
No EOL
1 KiB
Markdown
# minna-caos
|
|
|
|
> Content-Addressed Object Storage server intended for usage with Minna.
|
|
|
|
|
|
## Features
|
|
|
|
- resumable uploads (via [tus](https://tus.io/))
|
|
|
|
- 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
|
|
- metadata endpoints
|
|
- accepting uploads
|
|
- more storage backends |