import { Canceler } from "axios"; import { IApiService } from "../Core/IApiService"; import { FileType } from "../Model/FileType"; import { IConfig } from "../Model/IConfig"; import { IPreUploadChunkFileResponse } from "../Model/IPreUploadChunkFileResponse"; import { IPreUploadFileResponse } from "../Model/IPreUploadFileResponse"; import { IProgress } from "../Model/IProgress"; import { IUserFileInfo } from "../Model/IUserFileInfo"; /** * 默认接口服务实现类 *

此为抽象类,部分接口方法需要对接项目的后端接口

* * @author LCTR * @date 2022-11-07 */ export default abstract class DefaultApiService implements IApiService { abstract config(code: string): Promise; getFileTypeByExtension(extension: string): Promise; getFileTypeByMIME(mimetype: string): Promise; getFileTypeImageUrl(extension: string): string; getUnknowFileTypeImageUrl(): string; abstract rename(id: string, fileName: string): Promise; abstract getDownloadUrl(id: string, rename: string): string; abstract getUserFile(id: string): Promise; abstract getUserFilePreviewUrl(id: string, width?: number | undefined, height?: number | undefined, time?: string | undefined): string; abstract getUserFileBrowseUrl(id: string): string; abstract preUploadFile(configCode: string, md5: string, type: string, extension: string, length: string, filename?: string | undefined, section?: boolean | undefined, specs?: number | undefined, total?: number | undefined): Promise; abstract singleFile(configCode: string, file: File, filename?: string | undefined, onProgress?: ((progress: IProgress) => void) | undefined, setupCancelToken?: ((cancelToken: Canceler) => void) | undefined): Promise; abstract getSingleFileByArrayBufferRequestParams(configCode: string, type: string, extension: string, filename?: string | undefined): { urlWithParams: string; headers: Map; }; abstract getUserFileInfoFromSingleFileByArrayBufferResponse(response: any): IUserFileInfo; abstract preUploadChunkFile(file_md5: string, md5: string, index: number, specs: number, forced?: boolean | undefined): Promise; abstract singleChunkFile(key: string, md5: string, file: Blob, onProgress?: ((progress: IProgress) => void) | undefined, setupCancelToken?: ((cancelToken: Canceler) => void) | undefined): Promise; abstract getSingleChunkFileByArrayBufferRequestParams(key: string, md5: string): { urlWithParams: string; headers: Map; }; abstract getUserFileInfoFromSingleChunkFileByArrayBufferResponse(response: any): IUserFileInfo; abstract uploadChunkFileFinished(configCode: string, file_md5: string, specs: number, total: number, type?: string | undefined, extension?: string | undefined, filename?: string | undefined): Promise; }