go-platform/controllers/storage_migration.go
2026-04-09 16:26:38 +08:00

63 lines
1.4 KiB
Go
Raw Permalink 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.

package controllers
import (
"server/services"
beego "github.com/beego/beego/v2/server/web"
)
type StorageMigrationController struct {
beego.Controller
}
// MigrateToQiniu 迁移文件到七牛云
// POST /platform/storage/migrateToQiniu
func (c *StorageMigrationController) MigrateToQiniu() {
// 这里简化处理,实际应该使用异步任务
// 可以使用 goroutine + 进度查询接口实现
// 获取租户ID从token或参数
tid := uint64(1) // 示例,实际应从认证信息获取
progress, err := services.MigrateLocalToQiniu(tid)
if err != nil {
c.Data["json"] = map[string]interface{}{
"code": 500,
"msg": "迁移失败: " + err.Error(),
"data": progress,
}
_ = c.ServeJSON()
return
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "迁移完成",
"data": map[string]interface{}{
"total": progress.Total,
"success": progress.Success,
"failed": progress.Failed,
"errors": progress.Errors,
},
}
_ = c.ServeJSON()
}
// GetMigrationProgress 获取迁移进度
// GET /platform/storage/migrationProgress
func (c *StorageMigrationController) GetMigrationProgress() {
// 这里需要实现进度查询逻辑
// 可以使用全局变量或Redis存储进度信息
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "success",
"data": map[string]interface{}{
"total": 0,
"success": 0,
"failed": 0,
"current": "",
},
}
_ = c.ServeJSON()
}