UNPKG

@xuanqikai/one-click-upload

Version:

A CLI tool for one-click file upload to cloud storage services (OSS, TOS)

70 lines 2.25 kB
import { BatchUploadResult, IUploader, ProgressCallback, ServiceConfig, UploadResult } from '../types'; export declare abstract class BaseUploader implements IUploader { protected config: ServiceConfig; protected maxRetries: number; protected defaultChunkSize: number; constructor(config: ServiceConfig); /** * 上传单个文件或目录 */ upload(localPath: string, remotePath: string, options?: { overwrite?: boolean; enableResume?: boolean; maxRetries?: number; chunkSize?: number; onProgress?: ProgressCallback; customCacheControl?: string; }): Promise<UploadResult>; /** * 批量上传文件 */ uploadBatch(files: Array<{ localPath: string; remotePath: string; }>, options?: { overwrite?: boolean; enableResume?: boolean; maxRetries?: number; chunkSize?: number; onProgress?: ProgressCallback; }): Promise<BatchUploadResult>; /** * 上传目录 */ private uploadDirectory; /** * 上传单个文件(抽象方法,由子类实现) */ protected abstract uploadSingleFile(localPath: string, remotePath: string, options?: { overwrite?: boolean; enableResume?: boolean; maxRetries?: number; chunkSize?: number; onProgress?: ProgressCallback; }): Promise<UploadResult>; /** * 验证配置(抽象方法,由子类实现) */ abstract validateConfig(): Promise<boolean>; /** * 重试机制 */ protected retryOperation<T>(operation: () => Promise<T>, maxRetries?: number, delay?: number): Promise<T>; /** * 睡眠函数 */ protected sleep(ms: number): Promise<void>; /** * 获取文件大小 */ protected getFileSize(filePath: string): Promise<number>; /** * 创建进度回调 */ protected createProgressCallback(fileName: string, onProgress?: ProgressCallback): (loaded: number, total: number) => void; /** * 获取上传头信息 */ protected getUploadHeaders(localPath: string, customCacheControl?: string): Record<string, string>; } //# sourceMappingURL=BaseUploader.d.ts.map