export interface OssUploadTokenInput { bizType: string; mediaType: string; fileName: string; } export interface OssUploadTokenResult { bucket: string; region: string; ossKey: string; url: string; mock: boolean; expireAt: string; mediaType: string; bizType: string; /** OSS PostObject 直传 host,mock 时为空 */ host?: string; /** Base64 policy,mock 时为空 */ policy?: string; /** HMAC-SHA1 签名,mock 时为空 */ signature?: string; /** RAM AccessKeyId,mock 时为空 */ accessKeyId?: string; } export interface OssPutObjectInput { bizType: string; mediaType: string; fileName: string; buffer: Buffer; mimeType?: string; } export interface OssPutObjectResult { bucket: string; region: string; ossKey: string; url: string; mock: boolean; } export interface IOssProvider { isEnabled(): boolean; getUploadToken(input: OssUploadTokenInput): OssUploadTokenResult; putObject(input: OssPutObjectInput): Promise; buildPublicUrl(ossKey: string): string; }