express-storage
Version:
A simple and powerful file upload and storage management package for Express.js applications. Supports multiple storage drivers including S3, GCS, OCI, and local storage with presigned URL support.
53 lines • 2.14 kB
JavaScript
// Main exports
import { StorageManager } from './storage-manager.js';
export { StorageManager } from './storage-manager.js';
export { StorageDriverFactory } from './factory/driver.factory.js';
// Utility exports
export { loadAndValidateConfig, validateStorageConfig } from './utils/config.utils.js';
export { generateUniqueFileName, sanitizeFileName, createMonthBasedPath, ensureDirectoryExists, formatFileSize, validateFileSize, validateFileType, createLocalFileUrl, getFileExtension, isImageFile, isDocumentFile } from './utils/file.utils.js';
// Driver exports
export { BaseStorageDriver } from './drivers/base.driver.js';
export { LocalStorageDriver } from './drivers/local.driver.js';
export { S3StorageDriver, S3PresignedStorageDriver } from './drivers/s3.driver.js';
export { GCSStorageDriver, GCSPresignedStorageDriver } from './drivers/gcs.driver.js';
export { OCIStorageDriver, OCIPresignedStorageDriver } from './drivers/oci.driver.js';
// Default instance
let defaultStorageManager = null;
/**
* Get or create default storage manager instance
*/
export function getStorageManager() {
if (!defaultStorageManager) {
defaultStorageManager = new StorageManager();
}
return defaultStorageManager;
}
/**
* Initialize default storage manager with custom config
*/
export function initializeStorageManager(config) {
defaultStorageManager = StorageManager.initialize(config);
return defaultStorageManager;
}
/**
* Convenience functions for quick usage
*/
export async function uploadFile(file) {
return getStorageManager().uploadFile(file);
}
export async function uploadFiles(files) {
return getStorageManager().uploadFiles(files);
}
export async function generateUploadUrl(fileName) {
return getStorageManager().generateUploadUrl(fileName);
}
export async function generateViewUrl(fileName) {
return getStorageManager().generateViewUrl(fileName);
}
export async function deleteFile(fileName) {
return getStorageManager().deleteFile(fileName);
}
export async function deleteFiles(fileNames) {
return getStorageManager().deleteFiles(fileNames);
}
//# sourceMappingURL=index.js.map