import { Token } from '../types/token'; import { UploadBlob, UploadFile } from '../types/file'; import { Result } from '../types/types'; import { HttpAbort, HttpClient, OnHttpProgress } from '../types/http'; interface BasicParams { abort?: HttpAbort; onProgress?: OnHttpProgress; } interface BasicWithAuthParams extends BasicParams { token: Token; uploadHostUrl: string; } interface DirectUploadParams extends BasicWithAuthParams { } interface InitMultipartUploadParams extends BasicWithAuthParams { key?: string; bucket: string; } interface UploadPartParams extends BasicWithAuthParams { bucket: string; uploadId: string; part: UploadBlob; partIndex: number; md5?: string; key?: string; } interface ListPartsParams extends BasicWithAuthParams { uploadId: string; bucket: string; key?: string; } export interface UploadedPart extends PartMeta { size: number; putTime: number; } interface ListPartsData { uploadId: string; expireAt: number; partNumberMarker: number; parts: UploadedPart[] | null; } export interface PartMeta { etag: string; partNumber: number; } interface CompleteMultipartUploadParams extends BasicWithAuthParams { key?: string; fileName: string; uploadId: string; parts: PartMeta[]; mimeType?: string; metadata?: Record; customVars?: Record; } interface AbortMultipartUploadParams extends BasicWithAuthParams { uploadId: string; key?: string; } interface UploadChunkData { etag: string; md5: string; } export interface InitPartsUploadData { /** 该文件的上传 id, 后续该文件其他各个块的上传,已上传块的废弃,已上传块的合成文件,都需要该 id */ uploadId: string; /** uploadId 的过期时间 */ expireAt: number; } interface MkblkParams extends BasicWithAuthParams { firstChunkBinary: UploadBlob; } export interface MkblkData { ctx: string; checksum: string; crc32: number; offset: number; host: string; expired_at: number; } interface MkfileParams extends BasicWithAuthParams { fileSize: number; key?: string; fname?: string; mimeType?: string; userVars?: Record; lastCtxOfBlock: string[]; } interface DirectUploadParams extends BasicWithAuthParams { file: UploadFile; fileName: string; key?: string; crc32?: string; metadata?: Record; customVars?: Record; } export declare class UploadApis { /** http 请求客户端;通过实现不同的 HttpClient 来实现多环境支持 */ private httpClient; constructor( /** http 请求客户端;通过实现不同的 HttpClient 来实现多环境支持 */ httpClient: HttpClient); private generateAuthHeaders; private getBaseRequestPath; initMultipartUpload(params: InitMultipartUploadParams): Promise>; uploadPart(params: UploadPartParams): Promise>; listParts(params: ListPartsParams): Promise>; completeMultipartUpload(params: CompleteMultipartUploadParams): Promise>; abortMultipartUpload(params: AbortMultipartUploadParams): Promise>; mkblk(params: MkblkParams): Promise>; mkfile(params: MkfileParams): Promise>; directUpload(params: DirectUploadParams): Promise>; } interface GetHostConfigParams { assessKey: string; bucket: string; } interface HostConfig { hosts: Array<{ region: string; ttl: number; up: { domains: string[]; old: string[]; }; io: { domains: string[]; old: string[]; }; io_src: { domains: string[]; }; s3: { region_alias: string; domains: string[]; }; }>; } export declare class ConfigApis { /** 配置中心的服务地址 */ private serverUrl; /** http 请求客户端;通过实现不同的 HttpClient 来实现多环境支持 */ private httpClient; constructor( /** 配置中心的服务地址 */ serverUrl: string, /** http 请求客户端;通过实现不同的 HttpClient 来实现多环境支持 */ httpClient: HttpClient); /** 从服务中心获取接口服务地址 */ getHostConfig(params: GetHostConfigParams): Promise>; } export {};