Storage
Overview
Object storage for files and media: buckets, objects, signed URLs, public object reads, and object permissions.
API
{pe} = /projects/{projectId}/environments/{environmentId}.
| Method | Path | Notes |
|---|---|---|
| GET | /storage/health | Health |
| GET | /storage/public/{projectId}/{environmentId}/{bucket}/{*key} | Public object download |
| GET/POST | /storage{pe}/buckets | API key or owner JWT |
| GET/PATCH/DELETE | /storage{pe}/buckets/{bucketName} | API key or owner JWT |
| GET/POST | /storage{pe}/buckets/{bucketName}/objects | List / upload |
| GET | /storage{pe}/buckets/{bucketName}/object | Metadata (key query) |
| GET | /storage{pe}/buckets/{bucketName}/object/content | Download |
| DELETE | /storage{pe}/buckets/{bucketName}/object | Delete |
| POST | /storage{pe}/buckets/{bucketName}/object/signed-url | Signed URL |
| GET/PUT | /storage{pe}/buckets/{bucketName}/object/permissions | ACL |
| DELETE | /storage{pe}/buckets/{bucketName}/object/permissions/{subjectId} | Revoke |
Clients
| Package | Runtime |
|---|---|
@vijihub/storage | server |
@vijihub/storage-web | browser helpers (signed URL uploads) |
VijiHub.Storage | .NET |
import { createStorageClient } from '@vijihub/storage'
const storage = createStorageClient({
baseUrl: 'http://localhost:5600',
projectId: '...',
environmentId: '...',
apiKey: process.env.VIJIHUB_API_KEY!,
})
Implementation
- Enable Storage on the environment and configure the storage provider.
- Create buckets via API or Console.
- Prefer signed URLs (
@vijihub/storage-web) for browser uploads instead of embedding full keys. - Use
/storage/public/...only for objects intentionally marked public.
Constraints
- Admin/list/delete operations need a full API key or owner JWT.
- Do not put full storage admin keys in frontend bundles.
- Object paths and bucket names must match provider naming rules.