Skip to content

Storage

@veloxts/storage provides unified file storage.

Terminal window
pnpm add @veloxts/storage
import { storagePlugin } from '@veloxts/storage';
app.register(storagePlugin, {
driver: 'local',
config: {
root: './uploads',
baseUrl: '/files',
},
});
// Upload
await ctx.storage.put('avatars/user-123.jpg', buffer, {
visibility: 'public',
});
// Get URL
const url = await ctx.storage.url('avatars/user-123.jpg');
// Stream large files
const stream = await ctx.storage.stream('large-file.zip');
// Delete
await ctx.storage.delete('old-file.pdf');
// Check existence
const exists = await ctx.storage.exists('avatars/user-123.jpg');
storagePlugin({
driver: 'local',
config: { root: './uploads', baseUrl: '/files' },
})
storagePlugin({
driver: 's3',
config: {
bucket: 'my-bucket',
region: 'us-east-1',
accessKeyId: process.env.AWS_KEY,
secretAccessKey: process.env.AWS_SECRET,
},
})
const signedUrl = await ctx.storage.temporaryUrl(
'private/document.pdf',
{ expiresIn: '1h' }
);