master
huanghai 5 years ago
parent 389714ea59
commit 56568e8e65

@ -0,0 +1,69 @@
package Minio
import (
"dsSupport/Utils/CommonUtil"
"dsSupport/Utils/ConfigUtil"
"github.com/gin-gonic/gin"
"github.com/minio/minio-go/v6"
"log"
"net/http"
"net/url"
"strings"
"time"
)
//模块的路由配置
func Routers(r *gin.RouterGroup) {
//注册接口路径
rr := r.Group("/minio")
//上传URL签名
rr.GET("/presignedUrl", presignedUrl)
//获取下载URL地址
rr.GET("/getUrl", getUrl)
return
}
//声明s3的客户端实例
var s3Client *minio.Client
var err error
var bucketName string
func init() {
bucketName=ConfigUtil.MinioBacketName
s3Client, err = minio.New(ConfigUtil.MinioEndpoint, ConfigUtil.MinioAk, ConfigUtil.MinioSk, false)
if err != nil {
log.Fatalln(err)
}
}
/**
URL
2020-07-16
*/
func getUrl(c *gin.Context) {
name := c.Query("name")
reqParams := make(url.Values)
reqParams.Set("response-content-disposition", "attachment; filename=\""+name+"\"")
presignedURL, err := s3Client.PresignedGetObject(bucketName, name, time.Duration(1000)*time.Second*60, reqParams)
if err != nil {
log.Fatalln(err)
}
log.Println(presignedURL)
}
/**
2020-07-16
*/
func presignedUrl(c *gin.Context) {
//换成uuid文件格式
name := c.Query("name")
ext := strings.Split(name, ".")[1]
name = CommonUtil.GetUUID() + "." + ext
presignedURL, err := s3Client.PresignedPutObject(bucketName, name, time.Duration(1000)*time.Second*300)
if err != nil {
log.Fatalln(err)
}
c.String(http.StatusOK, presignedURL.String())
}

@ -1,4 +1,4 @@
package PreviewController
package Preview
import (
"dsSupport/Const"
@ -22,7 +22,7 @@ func Routers(r *gin.RouterGroup) {
return
}
// http://127.0.0.1:9000/support/preview/previewOffice
// http://127.0.0.1:9000/dsSupport/preview/previewOffice
/**
Office

@ -1,36 +0,0 @@
package S3File
import (
"github.com/gin-gonic/gin"
"github.com/minio/minio-go/v6"
"log"
"time"
)
//模块的路由配置
func Routers(r *gin.RouterGroup) {
rr := r.Group("/Minio")
//配置接口
rr.GET("/presignedUrl", presignedUrl)
return
}
func presignedUrl(c *gin.Context) {
//http://10.10.14.242:9000/dsmin/IMG_20200512_114233.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=5D2Q3FZ04LW4DIDW7R22%2F20200716%2F%2Fs3%2Faws4_request&X-Amz-Date=20200716T014856Z&X-Amz-Expires=432000&X-Amz-SignedHeaders=host&X-Amz-Signature=29371b8f457270b8cd4bc550d5643e5b2a72a071d802a7d091168b043f644bea
s3Client, err := minio.New("10.10.14.242:9000", "5D2Q3FZ04LW4DIDW7R22", "C98uUVskiHjPaVmjTBPFdE6rh+wOJKtQIn1wvqvv", false)
if err != nil {
log.Fatalln(err)
}
uploadPresign,err:=s3Client.PresignedPutObject("dsmin","1.docx",time.Duration(1000)*time.Second*300)
if err != nil {
log.Fatalln(err)
}
log.Println(uploadPresign)
//reqParams := make(url.Values)
//reqParams.Set("response-content-disposition", "attachment; filename=\"IMG_20200512_114233.jpg\"")
//presignedURL, err := s3Client.PresignedGetObject("dsmin", "IMG_20200512_114233.jpg", time.Duration(1000)*time.Second, reqParams)
//if err != nil {
// log.Fatalln(err)
//}
//log.Println(presignedURL)
}

@ -5,3 +5,9 @@ sk = dlWTUbqgCICaYJG3n0Rot4jXaen2HnfFtMVxiPEo
endpoint = obs.cn-north-1.myhuaweicloud.com
backupPrefix = baseServiceDbBackup
remainDays = 15
[minio]
endpoint = 10.10.14.242:9000
ak = 5D2Q3FZ04LW4DIDW7R22
sk = C98uUVskiHjPaVmjTBPFdE6rh+wOJKtQIn1wvqvv
bucketName = dsmin

@ -23,13 +23,13 @@
});
}
}
// 发请求到Node.js server获取上传URL。
// `retrieveNewURL` accepts the name of the current file and invokes the `/presignedUrl` endpoint to
// generate a pre-signed URL for use in uploading that file:
function retrieveNewURL(file, cb) {
fetch(`/presignedUrl?name=${file.name}`).then((response) => {
fetch(`/dsSupport/minio/presignedUrl?name=${file.name}`).then((response) => {
response.text().then((url) => {
console.log(url);
cb(file, url);
});
}).catch((e) => {

@ -1,17 +1,17 @@
package Router
import (
"dsSupport/Business/Preview/PreviewController"
"dsSupport/Business/S3File"
"dsSupport/Business/Preview"
"dsSupport/Business/Minio"
"github.com/gin-gonic/gin"
)
//接口路由
func GinRouter(r *gin.Engine) {
//注册分路线
rr := r.Group("/support")
rr := r.Group("/dsSupport")
//preview
PreviewController.Routers(rr)
Preview.Routers(rr)
//minio
S3File.Routers(rr)
Minio.Routers(rr)
}

@ -4,6 +4,7 @@ import (
"bufio"
"bytes"
"errors"
uuid "github.com/satori/go.uuid"
"log"
"os"
"os/exec"
@ -115,3 +116,13 @@ func IsContainInt32(items []int32, item int32) bool {
}
return false
}
/**
UUID
2020-02-03
*/
func GetUUID() string {
u2 := strings.ToUpper(uuid.NewV4().String())
return u2
}

@ -13,6 +13,11 @@ var (
Endpoint string
BackupPrefix string
RemainDays int32
MinioEndpoint string
MinioAk string
MinioSk string
MinioBacketName string
)
func init() {
@ -24,12 +29,17 @@ func init() {
return
}
//obs配置
Ak= iniParser.GetString("obs", "ak")
Sk= iniParser.GetString("obs", "sk")
Bucket= iniParser.GetString("obs", "bucket")
Endpoint= iniParser.GetString("obs", "endpoint")
BackupPrefix= iniParser.GetString("obs", "backupPrefix")
RemainDays=iniParser.GetInt32("obs", "remainDays")
Ak = iniParser.GetString("obs", "ak")
Sk = iniParser.GetString("obs", "sk")
Bucket = iniParser.GetString("obs", "bucket")
Endpoint = iniParser.GetString("obs", "endpoint")
BackupPrefix = iniParser.GetString("obs", "backupPrefix")
RemainDays = iniParser.GetInt32("obs", "remainDays")
//Minio
MinioEndpoint = iniParser.GetString("minio", "endpoint")
MinioAk = iniParser.GetString("minio", "ak")
MinioSk = iniParser.GetString("minio", "sk")
MinioBacketName=iniParser.GetString("minio", "bucketName")
}
type IniParser struct {

@ -11,6 +11,7 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/robfig/cron/v3 v3.0.0
github.com/satori/go.uuid v1.2.0
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect
google.golang.org/protobuf v1.25.0 // indirect
gopkg.in/ini.v1 v1.57.0

@ -75,6 +75,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E=
github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=

Loading…
Cancel
Save