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

4.1 KiB
Raw Blame History

修复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 文件:
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
  1. 修改 lover/.env 文件如果有OSS配置

  2. 重启应用

方案B: 统一使用 hello12312312 Bucket

如果要使用 hello12312312 作为主Bucket需要迁移所有资源。

步骤:

  1. 使用ossutil同步歌曲音频文件
# 安装ossutil如果还没安装
# Windows: 下载 https://gosspublic.alicdn.com/ossutil/ossutil64.exe

# 配置ossutil
ossutil config

# 同步uploads目录
ossutil cp -r \
  oss://nvlovers/uploads/ \
  oss://hello12312312/uploads/ \
  --update
  1. 同步恋人图片(如果需要)

  2. 更新数据库中的URL可选

方案C: 双Bucket配置不推荐

保持两个Bucket但需要修改代码逻辑来处理不同来源的资源。这会增加复杂度不推荐。

推荐方案方案A

建议统一使用 nvlovers Bucket因为

  1. 歌曲音频已经存储在那里
  2. 从数据库导出看,成功的任务都使用 nvlovers
  3. 迁移成本最低

具体操作步骤

1. 备份当前配置

copy .env .env.backup
copy lover\.env lover\.env.backup

2. 修改主配置文件

编辑 .env

# 修改这几行
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. 重启应用

# 停止当前运行的服务
# 然后重新启动
启动项目.bat

5. 验证修复

重新尝试生成唱歌视频确认使用正确的Bucket。

验证方法

方法1: 查看新任务的URL

生成一个新任务后检查数据库中的URL

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

# 创建一个测试任务
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

# 使用ossutil批量复制
ossutil cp -r \
  oss://hello12312312/lover/ \
  oss://nvlovers/lover/ \
  --update

# 复制uploads目录
ossutil cp -r \
  oss://hello12312312/uploads/ \
  oss://nvlovers/uploads/ \
  --update

测试清单

修改配置后,测试以下功能:

  • 生成恋人形象
  • 上传自定义图片
  • 生成唱歌视频
  • 生成跳舞视频
  • 查看历史记录
  • 图片和视频能正常显示

回滚方案

如果修改后出现问题,可以快速回滚:

copy .env.backup .env
copy lover\.env.backup lover\.env
# 重启应用

总结

任务382失败是因为OSS配置不一致。修复方法是统一使用 nvlovers Bucket这样所有资源都在同一个地方避免404错误。