后端实现: - 新增 OssTokenVo 响应类 - 修改 OssUtils 支持生成 OSS 直传 Token - 修改 FileUploadController 添加 /oss/token 接口 - 修改 SecurityConfig 配置 OSS 相关接口权限 - 更新多环境 OSS 配置 前端实现: - 新增 env.ts 工具函数,支持环境前缀 - file.ts 新增 getOssToken 和 uploadToOss 方法 - 修改 uploadFile 方法使用 OSS 直传 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.0 KiB
TypeScript
51 lines
1.0 KiB
TypeScript
/**
|
||
* 环境工具函数
|
||
*
|
||
* 提供环境相关的配置和工具函数
|
||
*/
|
||
|
||
/**
|
||
* OSS 环境前缀映射
|
||
*/
|
||
const OSS_ENV_PREFIX_MAP: Record<string, string> = {
|
||
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)
|
||
*/
|
||
export function buildOssDirPath(bizDir?: string): string {
|
||
const envPrefix = getOssEnvPrefix();
|
||
|
||
if (!bizDir) {
|
||
return envPrefix;
|
||
}
|
||
|
||
// 移除 bizDir 开头可能存在的环境前缀,避免重复
|
||
const cleanBizDir = bizDir.replace(/^(dev|test|prod)\//, '');
|
||
|
||
return `${envPrefix}/${cleanBizDir}`;
|
||
}
|