♻️ refactored thumbnail storage strategy

This commit is contained in:
2025-02-28 01:42:44 +08:00
parent 693ed8755c
commit 58c58546d2
32 changed files with 405 additions and 425 deletions

View File

@@ -49,36 +49,28 @@ func (c *NsqImageProcessConsumer) HandleMessage(msg *nsq.Message) error {
}
// 根据 GPS 信息获取地理位置信息
country, province, city, err := c.getGeoLocation(message.Data.Latitude, message.Data.Longitude)
country, province, city, err := c.getGeoLocation(message.Result.Latitude, message.Result.Longitude)
if err != nil {
return err
}
// 将地址信息保存到数据库
locationId, err := c.saveFileLocationInfoToDB(message.UID, message.Data.Latitude, message.Data.Longitude, country, province, city, message.ThumbPath)
locationId, err := c.saveFileLocationInfoToDB(message.UID, message.Result.Latitude, message.Result.Longitude, country, province, city, message.ThumbPath)
if err != nil {
return err
}
// 将文件信息存入数据库
storageId, err := c.saveFileInfoToDB(message.UID, message.Data.Bucket, message.Data.Provider, message.FileHeader, message.Data, message.FaceID, message.FilePath, locationId, message.Data.AlbumId)
storageId, err := c.saveFileInfoToDB(message.UID, message.Result.Bucket, message.Result.Provider, message.FileHeader, message.Result, message.FaceID, message.FilePath, locationId, message.Result.AlbumId)
if err != nil {
return err
}
err = c.saveFileThumbnailInfoToDB(message.UID, message.ThumbPath, message.Data.ThumbW, message.Data.ThumbH, message.Data.ThumbSize, storageId)
err = c.saveFileThumbnailInfoToDB(message.UID, message.ThumbPath, message.Result.ThumbW, message.Result.ThumbH, message.Result.ThumbSize, storageId)
if err != nil {
return err
}
// 删除缓存
c.afterImageUpload(message.UID)
// redis 保存最近7天上传的文件列表
//err = c.saveRecentFileList(message.UID, message.Thumbnail, message.URL, storageId, message.Data, message.FileHeader.Filename)
//if err != nil {
// return err
//}
return nil
}
@@ -166,32 +158,6 @@ func (c *NsqImageProcessConsumer) classifyFile(mimeType string, isScreenshot boo
return "unknown"
}
//// 保存最近7天上传的文件列表
//func (c *NsqImageProcessConsumer) saveRecentFileList(uid, thumbnail, url string, id int64, result types.File, filename string) error {
//
// redisKey := constant.ImageRecentPrefix + uid + ":" + strconv.FormatInt(id, 10)
// imageMeta := types.ImageMeta{
// ID: id,
// URL: url,
// FileName: filename,
// Width: result.ThumbW,
// Height: result.ThumbH,
// Thumbnail: thumbnail,
// CreatedAt: time.Now().Format("2006-01-02 15:04:05"),
// }
// marshal, err := json.Marshal(imageMeta)
// if err != nil {
// logx.Error(err)
// return errors.New("marshal image meta failed")
// }
// err = c.svcCtx.RedisClient.Set(c.ctx, redisKey, marshal, time.Hour*24*7).Err()
// if err != nil {
// logx.Error(err)
// return errors.New("save recent file list failed")
// }
// return nil
//}
// 提取解密操作为函数
func (c *NsqImageProcessConsumer) decryptConfig(dbConfig *model.ScaStorageConfig) (*config.StorageConfig, error) {
accessKey, err := encrypt.Decrypt(dbConfig.AccessKey, c.svcCtx.Config.Encrypt.Key)