@flightdev/storage
v0.0.7
Published
Storage adapters for Flight Framework - S3, R2, FS, and more
Maintainers
Readme
@flightdev/storage
File storage package with cloud provider adapters.
Installation
npm install @flightdev/storageQuick Start
import { createStorage } from '@flightdev/storage';
import { s3 } from '@flightdev/storage/s3';
const storage = createStorage(s3({
bucket: 'my-bucket',
region: 'us-east-1',
}));
// Upload
await storage.put('files/document.pdf', file);
// Download
const data = await storage.get('files/document.pdf');
// Delete
await storage.delete('files/document.pdf');Adapters
AWS S3
import { s3 } from '@flightdev/storage/s3';
const adapter = s3({
bucket: 'my-bucket',
region: 'us-east-1',
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
},
});Cloudflare R2
import { r2 } from '@flightdev/storage/r2';
const adapter = r2({
accountId: process.env.CF_ACCOUNT_ID,
bucket: 'my-bucket',
accessKeyId: process.env.R2_ACCESS_KEY_ID,
secretAccessKey: process.env.R2_SECRET_ACCESS_KEY,
});Local Filesystem
import { fs } from '@flightdev/storage/fs';
const adapter = fs({
basePath: './uploads',
});API Reference
storage.put(key, data, options?)
Upload a file.
await storage.put('path/file.txt', buffer, {
contentType: 'text/plain',
metadata: { uploadedBy: 'user123' },
});storage.get(key)
Download a file.
const data = await storage.get('path/file.txt');storage.getUrl(key, options?)
Get a signed URL.
const url = await storage.getUrl('path/file.txt', {
expiresIn: 3600, // 1 hour
});storage.delete(key)
Delete a file.
await storage.delete('path/file.txt');storage.list(prefix?)
List files.
const files = await storage.list('uploads/');License
MIT
