Storage Providers
Configure @vitehub/blob with first-class storage drivers.
ViteHub exposes provider names directly through blob.driver. Users configure ViteHub Blob only; provider implementation details stay inside the package.
Non-first-class providers are powered by files-sdk. Install it when using the drivers on this page:
pnpm add @vitehub/blob files-sdk
ViteHub generates provider-specific runtime imports so only the selected driver is reachable from the deployment bundle. Installing files-sdk may still install dependencies for providers you are not using.
Object Storage
vite.config.ts
export default defineConfig({
plugins: [hubBlob()],
blob: {
driver: 's3',
bucket: 'assets',
region: 'us-east-1',
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
},
},
})
Use the same shape for S3-compatible providers:
blob: {
driver: 'minio',
bucket: 'assets',
endpoint: 'http://localhost:9000',
accessKeyId: process.env.MINIO_ACCESS_KEY_ID,
secretAccessKey: process.env.MINIO_SECRET_ACCESS_KEY,
}
Supported S3-compatible drivers are s3, minio, digitalocean-spaces, storj, hetzner, and akamai.
Cloud Providers
blob: {
driver: 'gcs',
bucket: 'assets',
projectId: process.env.GOOGLE_CLOUD_PROJECT,
keyFilename: process.env.GOOGLE_APPLICATION_CREDENTIALS,
}
blob: {
driver: 'azure',
container: 'assets',
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
}
blob: {
driver: 'supabase',
bucket: 'assets',
url: process.env.SUPABASE_URL,
key: process.env.SUPABASE_SERVICE_ROLE_KEY,
}
blob: {
driver: 'netlify-blobs',
name: 'assets',
siteID: process.env.NETLIFY_SITE_ID,
token: process.env.NETLIFY_AUTH_TOKEN,
}
App Storage
blob: {
driver: 'dropbox',
accessToken: process.env.DROPBOX_ACCESS_TOKEN,
rootFolderPath: '/uploads',
}
blob: {
driver: 'uploadthing',
token: process.env.UPLOADTHING_TOKEN,
}
The app storage drivers are uploadthing, google-drive, onedrive, dropbox, and box.

