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)
}

@ -4,4 +4,10 @@ ak = WAFBGJACKDOQZDH1MKZ1
sk = dlWTUbqgCICaYJG3n0Rot4jXaen2HnfFtMVxiPEo
endpoint = obs.cn-north-1.myhuaweicloud.com
backupPrefix = baseServiceDbBackup
remainDays = 15
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
}

@ -7,12 +7,17 @@ import (
var (
//Obs
Bucket string
Ak string
Sk string
Endpoint string
Bucket string
Ak string
Sk string
Endpoint string
BackupPrefix string
RemainDays int32
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