Ai_GirlFriend/xuniYou/修复OSS配置问题.md

186 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

2026-03-02 18:57:11 +08:00
# 修复OSS配置问题
## 问题确认
当前配置使用的Bucket
```
ALIYUN_OSS_BUCKET_NAME=hello12312312
ALIYUN_OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
ALIYUN_OSS_CDN_DOMAIN=https://hello12312312.oss-cn-hangzhou.aliyuncs.com
```
但歌曲音频文件存储在:
```
nvlovers.oss-cn-qingdao.aliyuncs.com
```
## 解决方案选择
### 方案A: 统一使用 nvlovers Bucket推荐
如果 nvlovers 是主要的生产环境Bucket建议统一使用它。
**步骤:**
1. 修改 `.env` 文件:
```bash
ALIYUN_OSS_BUCKET_NAME=nvlovers
ALIYUN_OSS_ENDPOINT=https://oss-cn-qingdao.aliyuncs.com
ALIYUN_OSS_CDN_DOMAIN=https://nvlovers.oss-cn-qingdao.aliyuncs.com
```
2. 修改 `lover/.env` 文件如果有OSS配置
3. 重启应用
### 方案B: 统一使用 hello12312312 Bucket
如果要使用 hello12312312 作为主Bucket需要迁移所有资源。
**步骤:**
1. 使用ossutil同步歌曲音频文件
```bash
# 安装ossutil如果还没安装
# Windows: 下载 https://gosspublic.alicdn.com/ossutil/ossutil64.exe
# 配置ossutil
ossutil config
# 同步uploads目录
ossutil cp -r \
oss://nvlovers/uploads/ \
oss://hello12312312/uploads/ \
--update
```
2. 同步恋人图片(如果需要)
3. 更新数据库中的URL可选
### 方案C: 双Bucket配置不推荐
保持两个Bucket但需要修改代码逻辑来处理不同来源的资源。这会增加复杂度不推荐。
## 推荐方案方案A
建议统一使用 `nvlovers` Bucket因为
1. 歌曲音频已经存储在那里
2. 从数据库导出看,成功的任务都使用 nvlovers
3. 迁移成本最低
## 具体操作步骤
### 1. 备份当前配置
```bash
copy .env .env.backup
copy lover\.env lover\.env.backup
```
### 2. 修改主配置文件
编辑 `.env`
```bash
# 修改这几行
ALIYUN_OSS_BUCKET_NAME=nvlovers
ALIYUN_OSS_ENDPOINT=https://oss-cn-qingdao.aliyuncs.com
ALIYUN_OSS_CDN_DOMAIN=https://nvlovers.oss-cn-qingdao.aliyuncs.com
```
### 3. 检查lover配置
确保 `lover/.env` 没有覆盖OSS配置或者也同步修改。
### 4. 重启应用
```bash
# 停止当前运行的服务
# 然后重新启动
启动项目.bat
```
### 5. 验证修复
重新尝试生成唱歌视频确认使用正确的Bucket。
## 验证方法
### 方法1: 查看新任务的URL
生成一个新任务后检查数据库中的URL
```sql
SELECT
id,
JSON_EXTRACT(payload, '$.audio_url') as audio_url,
JSON_EXTRACT(payload, '$.image_url') as image_url
FROM nf_generation_tasks
ORDER BY id DESC
LIMIT 1;
```
应该看到URL包含 `nvlovers.oss-cn-qingdao.aliyuncs.com`
### 方法2: 测试API
```bash
# 创建一个测试任务
curl -X POST http://192.168.1.141:30101/sing/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"song_id": 9,
"lover_id": 64
}'
```
## 注意事项
1. **访问密钥**
确保 ACCESS_KEY 对两个Bucket都有权限或者更新为对应Bucket的密钥。
2. **已上传的文件**
如果用户已经上传了文件到 hello12312312需要
- 迁移这些文件到 nvlovers
- 或者保留 hello12312312 用于已有资源
3. **CDN配置**
如果使用了CDN确保CDN配置指向正确的源站。
4. **跨域配置**
确保新Bucket的CORS配置正确。
## 迁移现有资源(可选)
如果需要将 hello12312312 中的资源迁移到 nvlovers
```bash
# 使用ossutil批量复制
ossutil cp -r \
oss://hello12312312/lover/ \
oss://nvlovers/lover/ \
--update
# 复制uploads目录
ossutil cp -r \
oss://hello12312312/uploads/ \
oss://nvlovers/uploads/ \
--update
```
## 测试清单
修改配置后,测试以下功能:
- [ ] 生成恋人形象
- [ ] 上传自定义图片
- [ ] 生成唱歌视频
- [ ] 生成跳舞视频
- [ ] 查看历史记录
- [ ] 图片和视频能正常显示
## 回滚方案
如果修改后出现问题,可以快速回滚:
```bash
copy .env.backup .env
copy lover\.env.backup lover\.env
# 重启应用
```
## 总结
任务382失败是因为OSS配置不一致。修复方法是统一使用 `nvlovers` Bucket这样所有资源都在同一个地方避免404错误。