npm-storage-package
Version:
Universal cloud storage package for AWS S3, Google Cloud Storage, and Azure Blob Storage with Express.js integration
53 lines • 2.08 kB
TypeScript
import { StorageEngine } from "multer";
import { Provider, StorageConfig } from "./storageAction.js";
import { Request } from "express";
export interface CloudFile {
fieldname: string;
originalname: string;
encoding: string;
mimetype: string;
size: number;
destination: string;
filename: string;
path: string;
buffer: Buffer;
cloudUrl?: string;
cloudKey?: string;
}
export interface FieldConfig {
name: string;
maxCount?: number;
destination?: string;
allowedExtensions?: string[];
generateFileName?: (req: Request, file: Express.Multer.File) => string;
}
export interface MultiFieldOptions {
fields: FieldConfig[];
fileSizeLimit?: number;
globalFileFilter?: (req: Request, file: Express.Multer.File) => boolean;
}
export interface CloudStorageOptions {
provider: Provider;
config: StorageConfig;
generateFileName?: (req: Request, file: Express.Multer.File) => string;
fileFilter?: (req: Request, file: Express.Multer.File) => boolean;
destination?: string | ((req: Request, file: Express.Multer.File) => string);
fieldConfigs?: Record<string, FieldConfig>;
fileSizeLimit?: number;
}
export declare class CloudStorageEngine implements StorageEngine {
private provider;
private config;
private generateFileName?;
private fileFilter?;
private destination?;
private fieldConfigs?;
private fileSizeLimit?;
constructor(options: CloudStorageOptions);
_handleFile(req: Request, file: Express.Multer.File, callback: (error?: any, info?: Partial<CloudFile>) => void): void;
_removeFile(req: Request, file: CloudFile, callback: (error: Error | null) => void): void;
}
export declare function createS3Storage(options: Omit<CloudStorageOptions, "provider">): CloudStorageEngine;
export declare function createGCSStorage(options: Omit<CloudStorageOptions, "provider">): CloudStorageEngine;
export declare function createAzureStorage(options: Omit<CloudStorageOptions, "provider">): CloudStorageEngine;
//# sourceMappingURL=multer-storage.d.ts.map