platform-vue/docs/七牛云上传测试步骤.md

4.8 KiB
Raw Blame History

七牛云上传测试步骤

前置条件

  1. 数据库配置已正确设置:

    • storage_type = 'qiniu'
    • qiniu_region = 'z2' (华南)
    • qiniu_bucket = 'yunzerwebsite'
    • qiniu_domain = 'http://7colud.yunzer.cn'
    • qiniu_access_keyqiniu_secret_key 已配置
  2. 前端依赖已安装:

    • qiniu-js@^3.4.4 ✓ (已在 package.json 中)
  3. 后端服务已重启:

    systemctl restart go-api
    

测试步骤

1. 登录系统

访问前端页面并登录:

2. 进入软件升级页面

导航到:平台管理 → 软件升级

3. 上传文件测试

点击"新增"或"编辑"按钮,在弹出的对话框中:

  1. 点击"上传软件包"按钮
  2. 选择一个文件(建议先用小文件测试,如 1-10MB
  3. 观察上传进度条
  4. 等待上传完成

4. 验证上传结果

前端验证

  • 检查是否显示上传成功消息
  • 检查文件 URL 是否正确(应该是 http://7colud.yunzer.cn/...
  • 检查文件是否可以预览/下载

后端日志验证

tail -f /www/wwwroot/api.yunzer.cn/go.log

查看日志中是否有:

  • GET /platform/storage/config - 获取存储配置
  • GET /platform/qiniu/token - 获取上传凭证
  • POST /platform/qiniu/save - 保存文件记录

七牛云控制台验证

  1. 登录七牛云控制台
  2. 进入 yunzerwebsite 存储空间
  3. 检查文件是否已上传
  4. 文件路径格式应为:2026/04/09/时间戳.扩展名

数据库验证

SELECT id, name, src, size, type, cate, md5, create_time 
FROM system_file 
ORDER BY id DESC 
LIMIT 5;

检查:

  • src 字段应该是完整的七牛云 URL
  • md5 字段应该有值
  • size 字段应该正确

预期结果

成功标志

  1. 前端显示上传成功
  2. 文件 URL 格式正确:http://7colud.yunzer.cn/2026/04/09/xxxxx.ext
  3. 七牛云控制台能看到文件
  4. 数据库有对应记录
  5. 文件可以正常访问和下载

上传流程

前端 → 获取存储配置 (storageType: 'qiniu')
     → 获取上传凭证 (token, region: 'z2')
     → 直接上传到七牛云 (up-z2.qiniup.com)
     → 保存文件记录到数据库
     → 返回文件 URL

常见问题排查

问题 1: "incorrect region" 错误

错误信息:

xhr request failed, code: 400
response: {"error":"incorrect region, please use up-z2.qiniup.com, bucket is: yunzerwebsite"}

原因: 前端使用的区域与七牛云 bucket 实际区域不匹配

解决:

  • 已修复:添加了 getQiniuRegion() 函数,根据后端返回的 region 动态设置
  • 后端返回 region: 'z2',前端会自动使用 qiniu.region.z2

问题 2: "获取上传凭证失败"

可能原因:

  • 未登录或 token 过期
  • 存储配置未设置为七牛云
  • 七牛云配置不完整

解决:

  1. 检查登录状态
  2. 检查数据库 system_storage_config
  3. 确认 AccessKey 和 SecretKey 正确

问题 3: 上传后文件无法访问

可能原因:

  • 七牛云域名配置错误
  • 域名未绑定或未备案
  • 文件权限设置问题

解决:

  1. 检查 qiniu_domain 配置
  2. 登录七牛云控制台检查域名绑定
  3. 检查存储空间访问权限(应为公开)

问题 4: 大文件上传失败

可能原因:

  • 网络超时
  • 浏览器限制

解决:

  1. 七牛云 SDK 支持断点续传,会自动重试
  2. 检查网络连接
  3. 尝试分片上传SDK 自动处理)

性能测试

小文件测试 (< 10MB)

  • 预期时间:几秒内完成
  • 不会分片上传

中等文件测试 (10MB - 100MB)

  • 预期时间:根据网速,通常 1-2 分钟
  • 可能会分片上传

大文件测试 (> 100MB)

  • 预期时间:根据网速
  • 会自动分片上传
  • 支持断点续传

对比测试

旧方案(服务器中转)

100MB 文件上传时间:
- 上传到服务器2 分钟
- 服务器上传到七牛云2 分钟
- 总计4 分钟

新方案(直传)

100MB 文件上传时间:
- 直接上传到七牛云2 分钟
- 总计2 分钟

效率提升: 50%

回滚方案

如果七牛云直传有问题,可以临时切换回本地存储:

UPDATE system_storage_config 
SET storage_type = 'local' 
WHERE id = 1;

前端会自动检测并使用本地上传方式(通过服务器中转)。

相关文件

  • platform/src/utils/qiniuUpload.js - 上传工具(已添加 getQiniuRegion 函数)
  • go/controllers/qiniu_upload.go - 后端控制器
  • platform/docs/七牛云直传配置.md - 详细配置文档

更新日期

2026-04-09