186 lines
4.1 KiB
Markdown
186 lines
4.1 KiB
Markdown
# 修复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错误。
|