import { AppServer } from '../api/AppServer.js' import UploadFactory from '../../utils/IServer/UploadFactory.js' import Config from '../Config.js' /** * 初始化文件上传服务 * @param {String} preset - 配置预设名称,可选值:'normal'(默认), 'avatar', 'certification' * @returns {IUploadService} 上传服务实例 * * @example * // 使用默认配置(普通图片) * const uploadService = initFileService() * * // 使用头像配置(高质量) * const uploadService = initFileService('avatar') * * // 使用认证配置 * const uploadService = initFileService('certification') */ export function initFileService(preset = 'normal') { // 初始化上传服务(使用工厂模式) const appServer = new AppServer(); // 获取配置(优先使用预设配置,否则使用默认配置) const presetConfig = Config.UPLOAD_PRESETS[preset] || {} const uploadConfig = { ...Config.UPLOAD_CONFIG, // 基础配置 ...presetConfig // 覆盖预设配置 } // 通过工厂创建上传服务(从配置读取服务类型) const uploadService = UploadFactory.create( Config.UPLOAD_SERVICE_TYPE, // 服务类型(从配置读取) async (key) => await appServer.GetCosSign(key), // 签名获取函数 uploadConfig // 配置(从配置文件读取) ); return uploadService; }