sky-buckets
Version:
NPM package to redirect file uploads from Multer to MinIO with TypeScript support.
39 lines (38 loc) • 1.5 kB
TypeScript
import { Request } from 'express';
import * as Minio from 'minio';
import { StorageEngine } from 'multer';
declare global {
namespace Express {
namespace Multer {
interface File {
bucket?: string;
key?: string;
etag?: string;
location?: string;
}
}
}
}
interface MinioStorageOptions {
minioClient: Minio.Client;
minioEndPoint: string;
minioPort: number;
minioUseSSL: boolean;
bucketName: (req: Request, file: Express.Multer.File) => string | Promise<string>;
objectName: (req: Request, file: Express.Multer.File) => string | Promise<string>;
metadata?: (req: Request, file: Express.Multer.File) => Minio.ItemBucketMetadata | Promise<Minio.ItemBucketMetadata>;
}
export declare class MinioStorage implements StorageEngine {
private readonly minioClient;
private readonly minioEndPoint;
private readonly minioPort;
private readonly minioUseSSL;
private readonly getBucketName;
private readonly getObjectName;
private readonly getMetadata;
constructor(opts: MinioStorageOptions);
_handleFile: (req: Request, file: Express.Multer.File, cb: (error?: any, info?: Partial<Express.Multer.File>) => void) => Promise<void>;
_removeFile: (req: Request, file: Express.Multer.File, cb: (error: Error | null) => void) => Promise<void>;
}
export declare function createMinioStorage(opts: MinioStorageOptions): MinioStorage;
export {};