Storage
NaijaBase Storage lets you store files — images, videos, PDFs, documents — in buckets hosted in Lagos, Nigeria. The API is S3-compatible, so existing S3 libraries work with minimal changes.
Upload a file
// From a browser file input
const file = event.target.files[0]
const { data, error } = await naijabase
.storage
.from('avatars')
.upload(`users/${userId}.jpg`, file, {
contentType: 'image/jpeg',
})
Get a public URL
const { publicUrl } = naijabase
.storage
.from('avatars')
.getPublicUrl(`users/${userId}.jpg`)
// publicUrl is a string — use it directly in <img src={publicUrl} />
Download a file
const { data, error } = await naijabase
.storage
.from('documents')
.download('contract.pdf')
// data is a Blob — create an object URL or save it
const url = URL.createObjectURL(data)
List files in a folder
const { data, error } = await naijabase
.storage
.from('avatars')
.list('users/')
// data is an array of { name, id, metadata } objects
Delete files
const { error } = await naijabase
.storage
.from('avatars')
.remove(['users/old-avatar.jpg', 'users/temp.jpg'])
Bucket naming
Buckets group related files together. Common patterns:
| Bucket | Contents |
|---|---|
avatars | User profile photos |
documents | PDFs, contracts, invoices |
media | Images and videos for your app |
uploads | General user uploads |
Data residency
All files stored in NaijaBase Storage are physically located at Rack Centre, Victoria Island, Lagos, Nigeria. Files never leave Nigeria. This satisfies NDPA 2023 requirements for personal data localization.
S3 compatibility
NaijaBase Storage exposes an S3-compatible API. Your project Storage URL is on the API tab of your project dashboard. Use it with any S3-compatible client.