parent
6e9b9341d4
commit
a2cd7c8007
@ -0,0 +1,48 @@
|
|||||||
|
package apiThird
|
||||||
|
|
||||||
|
import (
|
||||||
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/log"
|
||||||
|
"Open_IM/pkg/utils"
|
||||||
|
"context"
|
||||||
|
"github.com/minio/minio-go/v7"
|
||||||
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
||||||
|
"github.com/minio/minio-go/v7/pkg/policy"
|
||||||
|
url2 "net/url"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
minioUrl, err := url2.Parse(config.Config.Credential.Minio.Endpoint)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError("", utils.GetSelfFuncName(), "parse failed, please check config/config.yaml", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
minioClient, err := minio.New(minioUrl.Host, &minio.Options{
|
||||||
|
Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""),
|
||||||
|
Secure: false,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.NewError("", utils.GetSelfFuncName(), "init minio client failed", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
opt := minio.MakeBucketOptions{
|
||||||
|
Region: config.Config.Credential.Minio.Location,
|
||||||
|
ObjectLocking: false,
|
||||||
|
}
|
||||||
|
err = minioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt)
|
||||||
|
if err != nil {
|
||||||
|
exists, err := minioClient.BucketExists(context.Background(), config.Config.Credential.Minio.Bucket)
|
||||||
|
if err == nil && exists {
|
||||||
|
log.NewInfo("", utils.GetSelfFuncName(), "We already own %s\n", config.Config.Credential.Minio.Bucket)
|
||||||
|
} else {
|
||||||
|
log.NewError("", utils.GetSelfFuncName(), "create bucket failed and bucket not exists", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo("", utils.GetSelfFuncName(), "minio create and set policy success")
|
||||||
|
}
|
@ -1,12 +1,13 @@
|
|||||||
package base_info
|
package base_info
|
||||||
|
|
||||||
type MinioStorageCredentialReq struct {
|
type MinioStorageCredentialReq struct {
|
||||||
Action string `form:"Action";binding:"required"`
|
OperationID string `json:"operationID"`
|
||||||
DurationSeconds int `form:"DurationSeconds"`
|
|
||||||
Version string `form:"Version"`
|
|
||||||
Policy string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type MiniostorageCredentialResp struct {
|
type MiniostorageCredentialResp struct {
|
||||||
|
SecretAccessKey string `json:"secretAccessKey"`
|
||||||
|
AccessKeyID string `json:"accessKeyID"`
|
||||||
|
SessionToken string `json:"sessionToken"`
|
||||||
|
BucketName string `json:"bucketName"`
|
||||||
|
StsEndpointURL string `json:"stsEndpointURL"`
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in new issue