UNPKG

multibucket

Version:

A library to generate presigned URLs for multiple storage providers (AWS S3, Cloudflare R2) with load balancing

56 lines (49 loc) 1.64 kB
// Type declarations for multibucket (minimal) // Project: multibucket // Definitions are kept minimal to reflect public API exported by index.js interface ProviderConfig { id: string; type: 's3' | 'r2'; bucket: string; region?: string; endpoint?: string; accessKeyId?: string; secretAccessKey?: string; weight?: number; publicUrlBase?: string; rateLimit?: number; forcePathStyle?: boolean; } interface MultiBucketOptions { providers?: ProviderConfig[]; configSource?: string; loadBalanceStrategy?: string; defaultExpiry?: number; } interface UploadUrlResult { uploadUrl: string; publicUrl: string | null; key: string; bucket: string; provider: string; expires: string; // ISO timestamp } interface ReadUrlResult { readUrl: string; key: string; bucket: string; provider: string; expires: string; // ISO timestamp } declare class MultiBucket { constructor(options?: MultiBucketOptions); loadExternalConfig(): Promise<void>; updateConfig(configData: any): void; getStorageProvider(): ProviderConfig; createClient(provider: ProviderConfig): any; generateUploadUrl(options: { filename: string; contentType: string; expiry?: number; path?: string; providerId?: string; keySpecified?: string }): Promise<UploadUrlResult>; generateReadUrl(options: { key: string; bucket?: string; providerId?: string; expiry?: number }): Promise<ReadUrlResult>; getStats(): any; createServer(port?: number): { app: any; server: any }; } export = MultiBucket;