/** * 环境工具函数 * * 提供环境相关的配置,用于自动为 OSS 路径添加环境前缀(dev/test/prod)。 * 这样不同环境的文件会存储在不同的目录下,互不干扰。 */ /** * OSS 环境前缀映射 * * 根据你的项目环境变量名修改此映射。 * Vite 默认使用 import.meta.env.MODE,值通常为 development / test / production。 */ const OSS_ENV_PREFIX_MAP: Record = { development: "dev", test: "test", production: "prod", }; /** * 获取当前 Vite 环境 */ export function getViteEnv(): string { return import.meta.env.MODE || "development"; } /** * 获取 OSS 环境前缀 * * @returns OSS 环境前缀(dev/test/prod) */ export function getOssEnvPrefix(): string { const env = getViteEnv(); return OSS_ENV_PREFIX_MAP[env] || "dev"; } /** * 构建完整的 OSS 目录路径 * * @param bizDir 业务目录(如:avatar, course/cover) * @returns 完整目录路径(如:dev/avatar, test/course/cover) * * @example * buildOssDirPath("avatar") // 开发环境 → "dev/avatar" * buildOssDirPath("course/cover") // 测试环境 → "test/course/cover" * buildOssDirPath() // 生产环境 → "prod" */ export function buildOssDirPath(bizDir?: string): string { const envPrefix = getOssEnvPrefix(); if (!bizDir) { return envPrefix; } // 移除 bizDir 开头可能存在的环境前缀,避免重复 const cleanBizDir = bizDir.replace(/^(dev|test|prod)\//, ""); return `${envPrefix}/${cleanBizDir}`; }