/** * 配置与类型定义:华为 OBS、Provider、环境解析器等。 */ /** 华为 OBS 连接与鉴权配置,含 basePrefix(所有 key 的基础前缀,仅在 config 中配置) */ export interface HuaweiObsConfig { endpoint: string; accessKey: string; secretKey: string; region?: string; basePrefix: string; /** CDN 加速根地址,配置后上传完成可拼出完整访问 URL(如 https://cdn.example.com) */ cdnBaseUrl?: string; } /** 当前支持的存储 Provider 类型 */ export type ProviderType = 'huawei'; /** 创建 StorageClient 时传入的配置,按 type 选择具体实现 */ export interface ProviderConfig { type: ProviderType; options: HuaweiObsConfig; } /** 根据环境标识解析华为 OBS 配置的接口,便于替换为配置文件等实现 */ export interface EnvConfigResolver { resolveHuaweiConfig(env?: string): HuaweiObsConfig; } /** * 解析后的 Provider 配置(含上传流程所需的 basePrefix、cdnBaseUrl)。 * 由 ProviderConfigResolver 统一返回,OssService 只依赖此结构,不关心具体云厂商。 */ export interface ResolvedProviderConfig { providerConfig: ProviderConfig; basePrefix: string; cdnBaseUrl?: string; } /** * 统一 Provider 配置解析器:返回当前要用的 Provider 及其配置。 * 切换云厂商时只需改此接口的【一个实现文件】即可(如改 env 或增加 case)。 */ export interface ProviderConfigResolver { resolve(): ResolvedProviderConfig; }