44 lines
920 B
Go
44 lines
920 B
Go
package oss
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
)
|
||
|
||
// Handler OSS处理器
|
||
type Handler struct {
|
||
ossService *Service
|
||
}
|
||
|
||
// NewHandler 创建OSS处理器
|
||
func NewHandler(ossService *Service) *Handler {
|
||
return &Handler{
|
||
ossService: ossService,
|
||
}
|
||
}
|
||
|
||
// GetPolicyToken 获取OSS上传凭证
|
||
func (h *Handler) GetPolicyToken(c *fiber.Ctx) error {
|
||
// 获取目录参数
|
||
dir := c.Query("dir", "user-dir")
|
||
|
||
// 生成凭证
|
||
policyToken, err := h.ossService.GetPolicyToken(dir)
|
||
if err != nil {
|
||
return c.Status(500).JSON(fiber.Map{
|
||
"error": "获取凭证失败: " + err.Error(),
|
||
})
|
||
}
|
||
|
||
return c.JSON(policyToken)
|
||
}
|
||
|
||
// GetMockPolicyToken 获取模拟OSS上传凭证(用于测试)
|
||
func (h *Handler) GetMockPolicyToken(c *fiber.Ctx) error {
|
||
// 获取目录参数
|
||
dir := c.Query("dir", "user-dir")
|
||
|
||
// 生成模拟凭证
|
||
policyToken := h.ossService.GetMockPolicyToken(dir)
|
||
return c.JSON(policyToken)
|
||
}
|