liuhaijun e94826ce29 add server
Change-Id: I0760f17f6a01c0121b59fcbfafc666032dbc30af
2024-09-19 09:44:15 +00:00

92 lines
2.4 KiB
Go
Raw 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 v1
import (
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/controller"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/errors"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/service"
"github.com/gin-gonic/gin"
"log"
"os"
)
func init() {
_ = os.Mkdir("/tmp", os.FileMode(0777))
}
func GetPresignedUrl(c *gin.Context) {
filename := c.Param("filename")
if filename == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
url, err := service.GetPresignedUrl("cpn", filename, 10000)
if err != nil {
log.Println(err)
controller.FailCode(c, errors.ServerError, err, "minio connection fail")
return
}
controller.Success(c, url)
}
func PostPresignedUrl(c *gin.Context) {
filename := c.Param("filename")
if filename == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
formData, err := service.PostPresignedUrl("cpn", filename, 10000)
if err != nil {
log.Println(err)
controller.FailCode(c, errors.ServerError, err, "minio connection fail")
return
}
controller.Success(c, formData)
}
func PutPresignedUrl(c *gin.Context) {
filename := c.Param("filename")
if filename == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
data, err := service.PutPresignedUrl("cpn", filename, 10000)
if err != nil {
log.Println(err)
controller.FailCode(c, errors.ServerError, err, "minio connection fail")
return
}
controller.Success(c, data)
}
func UploadFile(c *gin.Context) {
_, headers, err := c.Request.FormFile("file")
if err != nil {
log.Printf("Error when try to get file: %v", err)
}
filename := c.Request.PostForm.Get("filename")
if filename == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
//headers.Size 获取文件大小
if headers.Size > 1024*1024*200 {
controller.FailCode(c, errors.InvalidParameter, err, "文件大小不能超过200M")
return
}
err = c.SaveUploadedFile(headers, "/tmp/"+headers.Filename)
if err != nil {
log.Printf("Error upload file: %v", err)
controller.FailCode(c, errors.ServerError, err, "上传文件失败!")
return
}
err = service.UploadFile("cpn", filename, "/tmp/"+headers.Filename)
if err != nil {
log.Printf("Error upload minio file: %v", err)
controller.FailCode(c, errors.ServerError, err, "上传文件失败!")
return
}
controller.Success(c, "")
}