/** * 存储适配器接口 * * 支持多种存储实现: * - LocalAdapter: 本地文件系统(开发环境) * - OSSAdapter: 阿里云OSS(生产环境) * * 使用场景: * - 上传PDF文献文件 * - 上传Excel批量导入文件 * - 上传用户头像等静态资源 * * @example * ```typescript * import { storage } from '@/common/storage' * * // 上传文件 * const url = await storage.upload('literature/123.pdf', buffer) * * // 下载文件 * const buffer = await storage.download('literature/123.pdf') * * // 删除文件 * await storage.delete('literature/123.pdf') * * // 获取URL * const url = storage.getUrl('literature/123.pdf') * ``` */ export interface StorageAdapter { /** * 上传文件 * @param key 文件存储路径(相对路径,如:literature/123.pdf) * @param buffer 文件内容(二进制数据) * @returns 文件访问URL */ upload(key: string, buffer: Buffer): Promise /** * 下载文件 * @param key 文件存储路径 * @returns 文件内容(二进制数据) */ download(key: string): Promise /** * 删除文件 * @param key 文件存储路径 */ delete(key: string): Promise /** * 获取文件访问URL * @param key 文件存储路径 * @returns 文件访问URL(本地:http://localhost:3001/uploads/xxx,OSS:https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx) */ getUrl(key: string): string /** * 检查文件是否存在 * @param key 文件存储路径 * @returns 是否存在 */ exists(key: string): Promise }