JavaScript SDK - Storage#
S3-compatible object storage: buckets, objects, folders and presigned URLs.
Buckets#
const { data: bucket } = await db.storage.createBucket({
name: 'Avatars',
slug: 'avatars',
is_public: true,
file_size_limit: 5_000_000,
allowed_mime_types: ['image/png', 'image/jpeg'],
});
const { data: buckets } = await db.storage.listBuckets();
const { data: one } = await db.storage.getBucket(bucket.id);
await db.storage.deleteBucket(bucket.id);
TypeScriptObjects#
const { data: objects } = await db.storage.listObjects(bucket.id);
await db.storage.createFolder(bucket.id, 'user-uploads');
await db.storage.deleteObject(objectId);
TypeScriptUpload#
Get a presigned URL, then PUT the file bytes to it:
const { data: { url } } = await db.storage.signedUploadUrl({
bucket_id: bucket.id,
object_name: 'user-1.png',
content_length: 20480,
});
await fetch(url, { method: 'PUT', body: file });
TypeScriptDownload#
const { data: { url: downloadUrl } } = await db.storage.signedDownloadUrl(objectId);
// Public URL (no auth, public buckets only)
const publicUrl = db.storage.publicUrl(bucket.id, objectId);
TypeScriptTyped#
const buckets = await db.storage.listBuckets<{ id: string; slug: string }>();
buckets.data![0].slug;
TypeScriptNext: Environment variables.