@xuanqikai/one-click-upload
Version:
A CLI tool for one-click file upload to cloud storage services (OSS, TOS)
104 lines • 2.27 kB
TypeScript
export interface TOSCDNConfig {
accessKeyId: string;
accessKeySecret: string;
region: string;
cdnDomain?: string;
}
export interface CDNPreloadResult {
success: boolean;
taskId?: string;
url?: string;
error?: string;
}
export interface CDNRefreshResult {
success: boolean;
taskId?: string;
url?: string;
error?: string;
}
export interface CDNTaskResult {
success: boolean;
taskId?: string;
url?: string;
error?: string;
taskType: 'refresh' | 'prefetch';
}
export declare class TOSCDNService {
private config;
private endpoint;
private readonly HEADER_KEYS_TO_IGNORE;
constructor(config: TOSCDNConfig);
/**
* 判断URL是文件还是目录
*/
private isDirectory;
/**
* 刷新CDN缓存
*/
refreshCDN(url: string): Promise<CDNRefreshResult>;
/**
* 预热CDN缓存
*/
preloadCDN(url: string): Promise<CDNPreloadResult>;
/**
* 先刷新后预热CDN缓存(推荐使用)
*/
refreshAndPreloadCDN(url: string): Promise<CDNTaskResult[]>;
/**
* 构建请求头(包含签名)
*/
private buildHeaders;
/**
* 为GET请求构建请求头(包含签名)
*/
private buildHeadersForGet;
/**
* 计算签名 - 完全按照官方代码逻辑
*/
private calculateSignature;
/**
* 为GET请求计算签名
*/
private calculateSignatureForGet;
/**
* HMAC-SHA256 计算 - 返回二进制数据
*/
private hmac;
/**
* SHA256 哈希计算
*/
private hash;
/**
* 获取请求体的 SHA256 哈希
*/
private getBodySha;
/**
* 构建查询参数字符串
*/
private queryParamsToString;
/**
* 获取签名头部
*/
private getSignHeaders;
/**
* URI 转义
*/
private uriEscape;
/**
* 批量预热CDN
*/
preloadCDNBatch(urls: string[]): Promise<{
success: number;
failed: number;
results: CDNPreloadResult[];
}>;
/**
* 查询CDN任务配额
*/
queryTaskQuota(): Promise<any>;
/**
* 验证配置
*/
validateConfig(): boolean;
}
//# sourceMappingURL=TOSCDNService.d.ts.map