@xuanqikai/one-click-upload
Version:
A CLI tool for one-click file upload to cloud storage services (OSS, TOS)
70 lines • 2.25 kB
TypeScript
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