12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package config
- import (
- "cicv-data-closedloop/common/config/c_log"
- "cicv-data-closedloop/common/util"
- "encoding/json"
- "github.com/aliyun/aliyun-oss-go-sdk/oss"
- "os"
- "sync"
- "time"
- )
- type OssConnectInfoStruct struct {
- Endpoint string `json:"endpoint"`
- AccessKeyId string `json:"accessKeyId"`
- AccessKeySecret string `json:"accessKeySecret"`
- BucketName string `json:"bucketName"`
- }
- var (
- OssClient *oss.Client
- OssBucket *oss.Bucket
- OssMutex sync.Mutex
- )
- func InitOssConfig() {
- if !LocalConfig.Internet { // 如果没有网,就是完全用不了oss,直接不初始化
- return
- }
- var err error
- c_log.GlobalLogger.Info("初始化OSS客户端对象 - 开始。")
- // 1 访问 HTTP 服务获取 OSS 配置
- var get string
- // 等待网络可达
- for {
- get, err = util.HttpGet(LocalConfig.UrlGetOssConfig)
- if err != nil {
- c_log.GlobalLogger.Error("http 获取 oss 配置时出错。可能需要等待网络初始化完成:", err)
- time.Sleep(time.Duration(2) * time.Second)
- continue
- }
- break
- }
- var ossConnectInfo OssConnectInfoStruct
- err = json.Unmarshal([]byte(get), &ossConnectInfo)
- if err != nil {
- c_log.GlobalLogger.Error("解析json时出错:", err)
- os.Exit(-1)
- }
- OssClient, err = oss.New(ossConnectInfo.Endpoint, ossConnectInfo.AccessKeyId, ossConnectInfo.AccessKeySecret, oss.UseCname(true))
- if err != nil {
- c_log.GlobalLogger.Error("无法创建阿里云client:", err)
- os.Exit(-1)
- }
- // 超时时间设置
- //OssClient.Config.Timeout = 3600
- OssBucket, err = OssClient.Bucket(ossConnectInfo.BucketName)
- if err != nil {
- c_log.GlobalLogger.Error("无法创建阿里云bucket:", err)
- os.Exit(-1)
- }
- c_log.GlobalLogger.Info("初始化OSS客户端对象 - 成功。")
- }
|