You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
944 B
48 lines
944 B
4 months ago
|
package service
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"mime/multipart"
|
||
|
"net/url"
|
||
|
"os"
|
||
|
"service-api/global"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func UploadToMinio(objectName string, file *multipart.FileHeader, contentType string) error {
|
||
|
var (
|
||
|
err error
|
||
|
//exists bool
|
||
|
src multipart.File
|
||
|
)
|
||
|
|
||
|
defer src.Close()
|
||
|
out, err := os.Create(objectName)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
defer out.Close()
|
||
|
// 将上传的文件内容复制到目标文件
|
||
|
_, err = io.Copy(out, src)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func GetFileUrl(bucketName, fielname string) (err error, urls string) {
|
||
|
//reqParam := make(url.Values)
|
||
|
//reqParam.Set("response-source", "nft;")
|
||
|
reqParams := make(url.Values)
|
||
|
reqParams.Set("response-content-disposition", "attachment; filename="+fielname)
|
||
|
url, err := global.MG_MINIO.PresignedGetObject(bucketName, fielname, time.Second*60*5, reqParams)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
fmt.Println(url)
|
||
|
urls = url.Path
|
||
|
return
|
||
|
}
|