✨ added the image backup API
This commit is contained in:
@@ -797,6 +797,14 @@ type (
|
|||||||
ImageBedUploadListResponse {
|
ImageBedUploadListResponse {
|
||||||
Records []ImageBedUploadMeta `json:"records"`
|
Records []ImageBedUploadMeta `json:"records"`
|
||||||
}
|
}
|
||||||
|
BackupImageRequest {
|
||||||
|
OriginProvider string `json:"origin_provider"`
|
||||||
|
OriginBucket string `json:"origin_bucket"`
|
||||||
|
OriginRegion string `json:"origin_region"`
|
||||||
|
TargetProvider string `json:"target_provider"`
|
||||||
|
TargetBucket string `json:"target_bucket"`
|
||||||
|
TargetRegion string `json:"target_region"`
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// 文件上传
|
// 文件上传
|
||||||
@@ -959,6 +967,10 @@ service auth {
|
|||||||
// 获取图床上传的图片列表
|
// 获取图床上传的图片列表
|
||||||
@handler getImageBedUploadList
|
@handler getImageBedUploadList
|
||||||
post /image/bed/upload/list (ImageBedUploadListRequest) returns (ImageBedUploadListResponse)
|
post /image/bed/upload/list (ImageBedUploadListRequest) returns (ImageBedUploadListResponse)
|
||||||
|
|
||||||
|
// 备份图像数据
|
||||||
|
@handler backupImage
|
||||||
|
post /image/backup (BackupImageRequest) returns (string)
|
||||||
}
|
}
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -1085,6 +1097,16 @@ type (
|
|||||||
bindGitee bool `json:"bind_gitee,default=false"`
|
bindGitee bool `json:"bind_gitee,default=false"`
|
||||||
setPassword bool `json:"set_password,default=false"`
|
setPassword bool `json:"set_password,default=false"`
|
||||||
}
|
}
|
||||||
|
ModifyPersonalInfoRequest {
|
||||||
|
Nickname string `json:"nickname,optional"`
|
||||||
|
Avatar string `json:"avatar,optional"`
|
||||||
|
Email string `json:"email,optional"`
|
||||||
|
Gender int64 `json:"gender,optional"`
|
||||||
|
Introduce string `json:"introduce,optional"`
|
||||||
|
Blog string `json:"blog,optional"`
|
||||||
|
Location string `json:"location,optional"`
|
||||||
|
Company string `json:"company,optional"`
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// 用户服务
|
// 用户服务
|
||||||
@@ -1107,6 +1129,14 @@ service auth {
|
|||||||
// 退出登录
|
// 退出登录
|
||||||
@handler logout
|
@handler logout
|
||||||
post /logout returns (string)
|
post /logout returns (string)
|
||||||
|
|
||||||
|
// 获取个人信息
|
||||||
|
@handler getPersonalInfo
|
||||||
|
post /personal/info returns (UserMeta)
|
||||||
|
|
||||||
|
// 修改个人信息
|
||||||
|
@handler modifyPersonalInfo
|
||||||
|
post /personal/modify (ModifyPersonalInfoRequest) returns (string)
|
||||||
}
|
}
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
@@ -0,0 +1,21 @@
|
|||||||
|
package auth
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/logic/auth"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/common/xhttp"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetPersonalInfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
l := auth.NewGetPersonalInfoLogic(r.Context(), svcCtx)
|
||||||
|
resp, err := l.GetPersonalInfo()
|
||||||
|
if err != nil {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
|
||||||
|
} else {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,29 @@
|
|||||||
|
package auth
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/rest/httpx"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/logic/auth"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||||
|
"schisandra-album-cloud-microservices/common/xhttp"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ModifyPersonalInfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var req types.ModifyPersonalInfoRequest
|
||||||
|
if err := httpx.Parse(r, &req); err != nil {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
l := auth.NewModifyPersonalInfoLogic(r.Context(), svcCtx)
|
||||||
|
resp, err := l.ModifyPersonalInfo(&req)
|
||||||
|
if err != nil {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
|
||||||
|
} else {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -40,6 +40,16 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
|||||||
Path: "/logout",
|
Path: "/logout",
|
||||||
Handler: auth.LogoutHandler(serverCtx),
|
Handler: auth.LogoutHandler(serverCtx),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Method: http.MethodPost,
|
||||||
|
Path: "/personal/info",
|
||||||
|
Handler: auth.GetPersonalInfoHandler(serverCtx),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Method: http.MethodPost,
|
||||||
|
Path: "/personal/modify",
|
||||||
|
Handler: auth.ModifyPersonalInfoHandler(serverCtx),
|
||||||
|
},
|
||||||
}...,
|
}...,
|
||||||
),
|
),
|
||||||
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
|
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
|
||||||
@@ -381,6 +391,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
|||||||
Path: "/image/all/list",
|
Path: "/image/all/list",
|
||||||
Handler: storage.QueryAllImageListHandler(serverCtx),
|
Handler: storage.QueryAllImageListHandler(serverCtx),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Method: http.MethodPost,
|
||||||
|
Path: "/image/backup",
|
||||||
|
Handler: storage.BackupImageHandler(serverCtx),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Method: http.MethodPost,
|
Method: http.MethodPost,
|
||||||
Path: "/image/bed/upload",
|
Path: "/image/bed/upload",
|
||||||
|
@@ -0,0 +1,29 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/rest/httpx"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/logic/storage"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||||
|
"schisandra-album-cloud-microservices/common/xhttp"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BackupImageHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var req types.BackupImageRequest
|
||||||
|
if err := httpx.Parse(r, &req); err != nil {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
l := storage.NewBackupImageLogic(r.Context(), svcCtx)
|
||||||
|
resp, err := l.BackupImage(&req)
|
||||||
|
if err != nil {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
|
||||||
|
} else {
|
||||||
|
xhttp.JsonBaseResponseCtx(r.Context(), w, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
app/auth/api/internal/logic/auth/get_personal_info_logic.go
Normal file
39
app/auth/api/internal/logic/auth/get_personal_info_logic.go
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
package auth
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetPersonalInfoLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewGetPersonalInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetPersonalInfoLogic {
|
||||||
|
return &GetPersonalInfoLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
svcCtx: svcCtx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *GetPersonalInfoLogic) GetPersonalInfo() (resp *types.UserMeta, err error) {
|
||||||
|
uid, ok := l.ctx.Value("user_id").(string)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("user_id not found")
|
||||||
|
}
|
||||||
|
authUser := l.svcCtx.DB.ScaAuthUser
|
||||||
|
|
||||||
|
err = authUser.Where(authUser.UID.Eq(uid)).Scan(&resp)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return resp, nil
|
||||||
|
}
|
@@ -0,0 +1,42 @@
|
|||||||
|
package auth
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/model/mysql/model"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ModifyPersonalInfoLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewModifyPersonalInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ModifyPersonalInfoLogic {
|
||||||
|
return &ModifyPersonalInfoLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
svcCtx: svcCtx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *ModifyPersonalInfoLogic) ModifyPersonalInfo(req *types.ModifyPersonalInfoRequest) (resp string, err error) {
|
||||||
|
uid, ok := l.ctx.Value("user_id").(string)
|
||||||
|
if !ok {
|
||||||
|
return "", errors.New("user_id not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
authUser := l.svcCtx.DB.ScaAuthUser
|
||||||
|
info, err := authUser.Where(authUser.UID.Eq(uid)).Updates(model.ScaAuthUser{Nickname: req.Nickname, Avatar: req.Avatar, Email: req.Email, Gender: req.Gender, Introduce: req.Introduce, Blog: req.Blog, Location: req.Location, Company: req.Company})
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if info.RowsAffected == 0 {
|
||||||
|
return "", errors.New("user not found")
|
||||||
|
}
|
||||||
|
return "success", nil
|
||||||
|
}
|
128
app/auth/api/internal/logic/storage/backup_image_logic.go
Normal file
128
app/auth/api/internal/logic/storage/backup_image_logic.go
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/model/mysql/model"
|
||||||
|
"schisandra-album-cloud-microservices/common/constant"
|
||||||
|
"schisandra-album-cloud-microservices/common/encrypt"
|
||||||
|
storageConfig "schisandra-album-cloud-microservices/common/storage/config"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/auth/api/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BackupImageLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBackupImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *BackupImageLogic {
|
||||||
|
return &BackupImageLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
svcCtx: svcCtx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *BackupImageLogic) BackupImage(req *types.BackupImageRequest) (resp string, err error) {
|
||||||
|
uid, ok := l.ctx.Value("user_id").(string)
|
||||||
|
if !ok {
|
||||||
|
return "", errors.New("user_id not found")
|
||||||
|
}
|
||||||
|
if req.TargetBucket == "" || req.OriginBucket == "" {
|
||||||
|
return "", errors.New("origin bucket or target bucket required")
|
||||||
|
}
|
||||||
|
if req.TargetBucket == req.OriginBucket {
|
||||||
|
return "", errors.New("origin bucket and target bucket cannot be the same")
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.OriginProvider == req.TargetProvider {
|
||||||
|
// 加载用户oss配置信息
|
||||||
|
originOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.OriginProvider + ":" + req.OriginBucket
|
||||||
|
originOssConfig, err := l.getOssConfigFromCacheOrDb(originOssConfigKey, uid, req.OriginProvider, req.OriginBucket)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
service, err := l.svcCtx.StorageManager.GetStorage(uid, originOssConfig)
|
||||||
|
if err != nil {
|
||||||
|
return "", errors.New("get storage failed")
|
||||||
|
}
|
||||||
|
// 同一供应商,直接复制
|
||||||
|
_, err = service.PutBucketReplication(l.ctx, req.OriginBucket, req.TargetBucket, req.TargetRegion)
|
||||||
|
if err != nil {
|
||||||
|
return "", errors.New("put bucket replication failed")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 不同供应商,先复制到本地,再上传到目标OSS
|
||||||
|
return "", errors.New("different provider not supported yet")
|
||||||
|
}
|
||||||
|
|
||||||
|
return "success", nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取解密操作为函数
|
||||||
|
func (l *BackupImageLogic) decryptConfig(config *model.ScaStorageConfig) (*storageConfig.StorageConfig, error) {
|
||||||
|
accessKey, err := encrypt.Decrypt(config.AccessKey, l.svcCtx.Config.Encrypt.Key)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.New("decrypt access key failed")
|
||||||
|
}
|
||||||
|
secretKey, err := encrypt.Decrypt(config.SecretKey, l.svcCtx.Config.Encrypt.Key)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.New("decrypt secret key failed")
|
||||||
|
}
|
||||||
|
return &storageConfig.StorageConfig{
|
||||||
|
Provider: config.Provider,
|
||||||
|
Endpoint: config.Endpoint,
|
||||||
|
AccessKey: accessKey,
|
||||||
|
SecretKey: secretKey,
|
||||||
|
BucketName: config.Bucket,
|
||||||
|
Region: config.Region,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
|
func (l *BackupImageLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
|
return nil, errors.New("get oss config failed")
|
||||||
|
}
|
||||||
|
|
||||||
|
var ossConfig *storageConfig.StorageConfig
|
||||||
|
if result != "" {
|
||||||
|
var redisOssConfig model.ScaStorageConfig
|
||||||
|
if err = json.Unmarshal([]byte(result), &redisOssConfig); err != nil {
|
||||||
|
return nil, errors.New("unmarshal oss config failed")
|
||||||
|
}
|
||||||
|
return l.decryptConfig(&redisOssConfig)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存未命中,从数据库中加载
|
||||||
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存数据库配置
|
||||||
|
ossConfig, err = l.decryptConfig(dbOssConfig)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
marshalData, err := json.Marshal(dbOssConfig)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.New("marshal oss config failed")
|
||||||
|
}
|
||||||
|
err = l.svcCtx.RedisClient.Set(l.ctx, cacheKey, marshalData, 0).Err()
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.New("set oss config failed")
|
||||||
|
}
|
||||||
|
|
||||||
|
return ossConfig, nil
|
||||||
|
}
|
@@ -39,7 +39,7 @@ func (l *DeleteStorageConfigLogic) DeleteStorageConfig(req *types.DeleteStorageC
|
|||||||
if info.RowsAffected == 0 {
|
if info.RowsAffected == 0 {
|
||||||
return "", errors.New("storage config not found")
|
return "", errors.New("storage config not found")
|
||||||
}
|
}
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
err = l.svcCtx.RedisClient.Del(l.ctx, cacheOssConfigKey).Err()
|
err = l.svcCtx.RedisClient.Del(l.ctx, cacheOssConfigKey).Err()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
@@ -46,8 +46,8 @@ func (l *DownloadAlbumLogic) DownloadAlbum(req *types.DownloadAlbumRequest) (res
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -107,7 +107,7 @@ func (l *DownloadAlbumLogic) decryptConfig(config *model.ScaStorageConfig) (*sto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *DownloadAlbumLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *DownloadAlbumLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -124,7 +124,7 @@ func (l *DownloadAlbumLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider s
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -95,8 +95,8 @@ func (l *GetAlbumDetailLogic) GetAlbumDetail(req *types.AlbumDetailListRequest)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -215,7 +215,7 @@ func (l *GetAlbumDetailLogic) decryptConfig(config *model.ScaStorageConfig) (*st
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetAlbumDetailLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetAlbumDetailLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -232,7 +232,7 @@ func (l *GetAlbumDetailLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -61,8 +61,8 @@ func (l *GetBucketCapacityLogic) GetBucketCapacity(req *types.BucketCapacityRequ
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ func (l *GetBucketCapacityLogic) decryptConfig(config *model.ScaStorageConfig) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetBucketCapacityLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetBucketCapacityLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -159,7 +159,7 @@ func (l *GetBucketCapacityLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provid
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -86,8 +86,8 @@ func (l *GetDeleteRecordLogic) GetDeleteRecord(req *types.QueryDeleteRecordReque
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ func (l *GetDeleteRecordLogic) decryptConfig(config *model.ScaStorageConfig) (*s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetDeleteRecordLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetDeleteRecordLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -206,7 +206,7 @@ func (l *GetDeleteRecordLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -85,8 +85,8 @@ func (l *GetFaceDetailListLogic) GetFaceDetailList(req *types.FaceDetailListRequ
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ func (l *GetFaceDetailListLogic) decryptConfig(config *model.ScaStorageConfig) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetFaceDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetFaceDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -206,7 +206,7 @@ func (l *GetFaceDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provid
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -44,8 +44,8 @@ func (l *GetImageBedUploadListLogic) GetImageBedUploadList(req *types.ImageBedUp
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
cacheKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ func (l *GetImageBedUploadListLogic) decryptConfig(dbConfig *model.ScaStorageCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetImageBedUploadListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
func (l *GetImageBedUploadListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*config.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -111,7 +111,7 @@ func (l *GetImageBedUploadListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, pr
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -65,8 +65,8 @@ func (l *GetImageUrlLogic) GetImageUrl(req *types.SingleImageRequest) (resp stri
|
|||||||
return "", errors.New("get storage info failed")
|
return "", errors.New("get storage info failed")
|
||||||
}
|
}
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider + ":" + result.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, result.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, result.Provider, result.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ func (l *GetImageUrlLogic) decryptConfig(config *model.ScaStorageConfig) (*stora
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -125,7 +125,7 @@ func (l *GetImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider str
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -97,8 +97,8 @@ func (l *GetPrivateImageListLogic) GetPrivateImageList(req *types.PrivateImageLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ func (l *GetPrivateImageListLogic) decryptConfig(config *model.ScaStorageConfig)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetPrivateImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetPrivateImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -213,7 +213,7 @@ func (l *GetPrivateImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, prov
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -98,8 +98,8 @@ func (l *GetPrivateImageUrlLogic) GetPrivateImageUrl(req *types.SinglePrivateIma
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -178,7 +178,7 @@ func (l *GetPrivateImageUrlLogic) decryptConfig(config *model.ScaStorageConfig)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *GetPrivateImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *GetPrivateImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -195,7 +195,7 @@ func (l *GetPrivateImageUrlLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provi
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -61,8 +61,8 @@ func (l *ImageBedUploadLogic) ImageBedUpload(r *http.Request) (resp *types.Image
|
|||||||
|
|
||||||
// 上传文件到OSS
|
// 上传文件到OSS
|
||||||
|
|
||||||
cacheKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider
|
cacheKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider + ":" + result.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, result.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, result.Provider, result.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ func (l *ImageBedUploadLogic) decryptConfig(dbConfig *model.ScaStorageConfig) (*
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *ImageBedUploadLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
func (l *ImageBedUploadLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*config.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -154,7 +154,7 @@ func (l *ImageBedUploadLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -109,8 +109,8 @@ func (l *QueryAllImageListLogic) QueryAllImageList(req *types.AllImageListReques
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -222,7 +222,7 @@ func (l *QueryAllImageListLogic) decryptConfig(config *model.ScaStorageConfig) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryAllImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryAllImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -239,7 +239,7 @@ func (l *QueryAllImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provid
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -91,8 +91,8 @@ func (l *QueryLocationDetailListLogic) QueryLocationDetailList(req *types.Locati
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ func (l *QueryLocationDetailListLogic) decryptConfig(config *model.ScaStorageCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryLocationDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryLocationDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -210,7 +210,7 @@ func (l *QueryLocationDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid,
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -60,8 +60,8 @@ func (l *QueryLocationImageListLogic) QueryLocationImageList(req *types.Location
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -132,7 +132,7 @@ func (l *QueryLocationImageListLogic) decryptConfig(config *model.ScaStorageConf
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryLocationImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryLocationImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -149,7 +149,7 @@ func (l *QueryLocationImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, p
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -93,8 +93,8 @@ func (l *QueryRecentImageListLogic) QueryRecentImageList(req *types.RecentListRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -206,7 +206,7 @@ func (l *QueryRecentImageListLogic) decryptConfig(config *model.ScaStorageConfig
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryRecentImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryRecentImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -223,7 +223,7 @@ func (l *QueryRecentImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, pro
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -91,8 +91,8 @@ func (l *QueryThingDetailListLogic) QueryThingDetailList(req *types.ThingDetailL
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ func (l *QueryThingDetailListLogic) decryptConfig(config *model.ScaStorageConfig
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryThingDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryThingDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -210,7 +210,7 @@ func (l *QueryThingDetailListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, pro
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -64,8 +64,8 @@ func (l *QueryThingImageListLogic) QueryThingImageList(req *types.ThingListReque
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -152,7 +152,7 @@ func (l *QueryThingImageListLogic) decryptConfig(config *model.ScaStorageConfig)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *QueryThingImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *QueryThingImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -169,7 +169,7 @@ func (l *QueryThingImageListLogic) getOssConfigFromCacheOrDb(cacheKey, uid, prov
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -85,8 +85,8 @@ func (l *SearchImageLogic) SearchImage(req *types.SearchImageRequest) (resp *typ
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 加载用户oss配置信息
|
// 加载用户oss配置信息
|
||||||
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider
|
cacheOssConfigKey := constant.UserOssConfigPrefix + uid + ":" + req.Provider + ":" + req.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheOssConfigKey, uid, req.Provider, req.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -325,7 +325,7 @@ func (l *SearchImageLogic) decryptConfig(config *model.ScaStorageConfig) (*stora
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *SearchImageLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*storageConfig.StorageConfig, error) {
|
func (l *SearchImageLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*storageConfig.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -342,7 +342,7 @@ func (l *SearchImageLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider str
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -222,8 +222,8 @@ func (l *UploadFileLogic) parseUploadSettingResult(r *http.Request) (types.Uploa
|
|||||||
|
|
||||||
// 上传文件到 OSS
|
// 上传文件到 OSS
|
||||||
func (l *UploadFileLogic) uploadFileToOSS(uid string, header *multipart.FileHeader, file io.Reader, thumbnail io.Reader, result types.File, settingResult types.UploadSetting) (string, string, error) {
|
func (l *UploadFileLogic) uploadFileToOSS(uid string, header *multipart.FileHeader, file io.Reader, thumbnail io.Reader, result types.File, settingResult types.UploadSetting) (string, string, error) {
|
||||||
cacheKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider
|
cacheKey := constant.UserOssConfigPrefix + uid + ":" + result.Provider + ":" + result.Bucket
|
||||||
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, result.Provider)
|
ossConfig, err := l.getOssConfigFromCacheOrDb(cacheKey, uid, result.Provider, result.Bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", errors.New("get oss config failed")
|
return "", "", errors.New("get oss config failed")
|
||||||
}
|
}
|
||||||
@@ -293,7 +293,7 @@ func (l *UploadFileLogic) decryptConfig(dbConfig *model.ScaStorageConfig) (*conf
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (l *UploadFileLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
func (l *UploadFileLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*config.StorageConfig, error) {
|
||||||
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
result, err := l.svcCtx.RedisClient.Get(l.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -310,7 +310,7 @@ func (l *UploadFileLogic) getOssConfigFromCacheOrDb(cacheKey, uid, provider stri
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := l.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -129,7 +129,7 @@ func (c *NsqImageProcessConsumer) getGeoLocation(latitude, longitude float64) (s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从缓存或数据库中获取 OSS 配置
|
// 从缓存或数据库中获取 OSS 配置
|
||||||
func (c *NsqImageProcessConsumer) getOssConfigFromCacheOrDb(cacheKey, uid, provider string) (*config.StorageConfig, error) {
|
func (c *NsqImageProcessConsumer) getOssConfigFromCacheOrDb(cacheKey, uid, provider string, bucket string) (*config.StorageConfig, error) {
|
||||||
result, err := c.svcCtx.RedisClient.Get(c.ctx, cacheKey).Result()
|
result, err := c.svcCtx.RedisClient.Get(c.ctx, cacheKey).Result()
|
||||||
if err != nil && !errors.Is(err, redis.Nil) {
|
if err != nil && !errors.Is(err, redis.Nil) {
|
||||||
return nil, errors.New("get oss config failed")
|
return nil, errors.New("get oss config failed")
|
||||||
@@ -146,7 +146,7 @@ func (c *NsqImageProcessConsumer) getOssConfigFromCacheOrDb(cacheKey, uid, provi
|
|||||||
|
|
||||||
// 缓存未命中,从数据库中加载
|
// 缓存未命中,从数据库中加载
|
||||||
scaOssConfig := c.svcCtx.DB.ScaStorageConfig
|
scaOssConfig := c.svcCtx.DB.ScaStorageConfig
|
||||||
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider)).First()
|
dbOssConfig, err := scaOssConfig.Where(scaOssConfig.UserID.Eq(uid), scaOssConfig.Provider.Eq(provider), scaOssConfig.Bucket.Eq(bucket)).First()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -99,6 +99,15 @@ type AllStorageListResponse struct {
|
|||||||
Records []StorageConfigMeta `json:"records"`
|
Records []StorageConfigMeta `json:"records"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type BackupImageRequest struct {
|
||||||
|
OriginProvider string `json:"origin_provider"`
|
||||||
|
OriginBucket string `json:"origin_bucket"`
|
||||||
|
OriginRegion string `json:"origin_region"`
|
||||||
|
TargetProvider string `json:"target_provider"`
|
||||||
|
TargetBucket string `json:"target_bucket"`
|
||||||
|
TargetRegion string `json:"target_region"`
|
||||||
|
}
|
||||||
|
|
||||||
type BucketCapacityRequest struct {
|
type BucketCapacityRequest struct {
|
||||||
Provider string `json:"provider"`
|
Provider string `json:"provider"`
|
||||||
Bucket string `json:"bucket"`
|
Bucket string `json:"bucket"`
|
||||||
@@ -371,6 +380,17 @@ type ModifyFaceTypeResponse struct {
|
|||||||
Result string `json:"result"`
|
Result string `json:"result"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ModifyPersonalInfoRequest struct {
|
||||||
|
Nickname string `json:"nickname,optional"`
|
||||||
|
Avatar string `json:"avatar,optional"`
|
||||||
|
Email string `json:"email,optional"`
|
||||||
|
Gender int64 `json:"gender,optional"`
|
||||||
|
Introduce string `json:"introduce,optional"`
|
||||||
|
Blog string `json:"blog,optional"`
|
||||||
|
Location string `json:"location,optional"`
|
||||||
|
Company string `json:"company,optional"`
|
||||||
|
}
|
||||||
|
|
||||||
type OAuthCallbackRequest struct {
|
type OAuthCallbackRequest struct {
|
||||||
Code string `form:"code"`
|
Code string `form:"code"`
|
||||||
}
|
}
|
||||||
|
@@ -419,3 +419,45 @@ func (a *AliOSS) PresignedURL(ctx context.Context, bucketName, objectKey string,
|
|||||||
|
|
||||||
return presignedResult.URL, nil
|
return presignedResult.URL, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PutBucketReplication 配置跨区域复制规则
|
||||||
|
func (a *AliOSS) PutBucketReplication(ctx context.Context, originBucketName, targetBucketName, targetBucketRegion string) (string, error) {
|
||||||
|
request := &oss.PutBucketReplicationRequest{
|
||||||
|
Bucket: oss.Ptr(originBucketName), // 存储空间名称
|
||||||
|
ReplicationConfiguration: &oss.ReplicationConfiguration{
|
||||||
|
Rules: []oss.ReplicationRule{
|
||||||
|
{
|
||||||
|
RTC: &oss.ReplicationTimeControl{
|
||||||
|
Status: oss.Ptr("enabled"), // 在配置跨区域复制规则时,开启数据复制时间控制(RTC)功能
|
||||||
|
},
|
||||||
|
Destination: &oss.ReplicationDestination{
|
||||||
|
Bucket: oss.Ptr(targetBucketName), // 目标存储空间名称
|
||||||
|
Location: oss.Ptr(targetBucketRegion), // 目标存储区域
|
||||||
|
TransferType: oss.TransferTypeOssAcc, // 传输类型
|
||||||
|
},
|
||||||
|
HistoricalObjectReplication: oss.HistoricalObjectReplicationEnabled, // 开启历史数据复制功能
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
result, err := a.client.PutBucketReplication(ctx, request)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to put bucket replication, error: %v", err)
|
||||||
|
}
|
||||||
|
return *result.ReplicationRuleId, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteBucketReplication 删除跨区域复制规则
|
||||||
|
func (a *AliOSS) DeleteBucketReplication(ctx context.Context, bucketName string, ruleId string) error {
|
||||||
|
request := &oss.DeleteBucketReplicationRequest{
|
||||||
|
Bucket: oss.Ptr(bucketName), // 存储空间名称
|
||||||
|
ReplicationRules: &oss.ReplicationRules{
|
||||||
|
IDs: []string{ruleId}, // 复制规则ID列表
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_, err := a.client.DeleteBucketReplication(ctx, request)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to delete bucket replication, error: %v", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@@ -77,4 +77,6 @@ type Service interface {
|
|||||||
DeleteObject(ctx context.Context, bucketName, objectName string) (int, error)
|
DeleteObject(ctx context.Context, bucketName, objectName string) (int, error)
|
||||||
RenameObject(ctx context.Context, destBucketName, destObjectName, srcObjectName, srcBucketName string) (int, error)
|
RenameObject(ctx context.Context, destBucketName, destObjectName, srcObjectName, srcBucketName string) (int, error)
|
||||||
PresignedURL(ctx context.Context, bucketName, objectKey string, expires time.Duration) (string, error)
|
PresignedURL(ctx context.Context, bucketName, objectKey string, expires time.Duration) (string, error)
|
||||||
|
PutBucketReplication(ctx context.Context, originBucketName, targetBucketName, targetBucketRegion string) (string, error)
|
||||||
|
DeleteBucketReplication(ctx context.Context, bucketName string, ruleId string) error
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user