Ai_GirlFriend/xuniYou/修复OSS配置问题.md
2026-03-02 18:57:11 +08:00

186 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 修复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错误。