UNPKG

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
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