92 lines
2.4 KiB
Go
92 lines
2.4 KiB
Go
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, "")
|
||
}
|