feat: ali、qiniu上传文件热力图配置

This commit is contained in:
sjm
2024-07-12 11:45:23 +08:00
parent 4cc8fec868
commit cb4a20c8ed
3 changed files with 52 additions and 27 deletions

View File

@@ -2,21 +2,21 @@ package com.schisandra.oss.application.controller;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON;
import com.amazonaws.util.IOUtils;
import com.google.common.base.Preconditions;
import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter;
import com.schisandra.oss.application.dto.SchisandraOssAliDTO;
import com.schisandra.oss.application.oss.core.ali.AliOssClient;
import com.schisandra.oss.application.oss.core.ali.AliOssConfiguration;
import com.schisandra.oss.application.oss.core.minio.MinioOssClient;
import com.schisandra.oss.application.oss.model.OssInfo;
import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.domain.bo.SchisandraOssAliBO;
import com.schisandra.oss.domain.redis.RedisUtil;
import com.schisandra.oss.domain.service.SchisandraOssAliDomainService;
import io.minio.errors.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -26,8 +26,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* controller
@@ -44,8 +45,10 @@ public class SchisandraOssAliController {
private SchisandraOssAliDomainService schisandraOssAliDomainService;
@Resource
private AliOssConfiguration aliOssConfiguration;
@Autowired
private AliOssClient aliOssClient;
private final String USER_OSS_PREFIX = "oss:user:heat";
@Resource
RedisUtil redisUtil;
@GetMapping("init")
public void init(@RequestParam String userId){
@@ -144,20 +147,10 @@ public class SchisandraOssAliController {
/**
* 查找bucket
* @param userId
* @return
* @throws ServerException
* @throws InsufficientDataException
* @throws ErrorResponseException
* @throws IOException
* @throws NoSuchAlgorithmException
* @throws InvalidKeyException
* @throws InvalidResponseException
* @throws XmlParserException
* @throws InternalException
*/
@PostMapping("seleteBucket")
public Result<String> seleteBucket(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
public Result<String> seleteBucket(@RequestParam String userId) {
Preconditions.checkNotNull(userId, "不能为空");
AliOssClient bean = SpringUtil.getBean(userId);
return Result.ok(bean.selectAllBucket());
@@ -206,6 +199,19 @@ public class SchisandraOssAliController {
Preconditions.checkNotNull(userId, "不能为空");
Preconditions.checkNotNull(fileName, "不能为空");
Preconditions.checkNotNull(bucket, "不能为空");
//设置热力图
Date date =new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate);
int count=1;
if (redisUtil.exist(key)){
count= Integer.parseInt(redisUtil.get(key));
redisUtil.set(key, String.valueOf(count+1));
}else {
redisUtil.set(key, String.valueOf(1));
}
// 获取文件输入流
InputStream is = file.getInputStream();
AliOssClient bean = SpringUtil.getBean(userId);

View File

@@ -151,7 +151,7 @@ public class SchisandraOssMinioController {
Date date =new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,"2024-07-12");
String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate);
int count=1;
if (redisUtil.exist(key)){
count= Integer.parseInt(redisUtil.get(key));
@@ -159,13 +159,12 @@ public class SchisandraOssMinioController {
}else {
redisUtil.set(key, String.valueOf(1));
}
return Result.ok();
//
// // 获取文件输入流
// InputStream is = file.getInputStream();
// MinioOssClient bean = SpringUtil.getBean(userId);
// bean.getMinioOssConfig().setBucketName(bucket);
// return Result.ok(bean.upLoad(is, fileName, true));
// 获取文件输入流
InputStream is = file.getInputStream();
MinioOssClient bean = SpringUtil.getBean(userId);
bean.getMinioOssConfig().setBucketName(bucket);
return Result.ok(bean.upLoad(is, fileName, true));
}

View File

@@ -10,6 +10,7 @@ import com.schisandra.oss.application.oss.core.qiniu.QiNiuOssConfiguration;
import com.schisandra.oss.application.oss.model.OssInfo;
import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO;
import com.schisandra.oss.domain.redis.RedisUtil;
import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@@ -20,6 +21,8 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 七牛云对象存储配置表 controller
@@ -37,6 +40,9 @@ public class SchisandraOssQiniuController {
@Resource
private QiNiuOssConfiguration qiNiuOssConfiguration;
private final String USER_OSS_PREFIX = "oss:user:heat";
@Resource
RedisUtil redisUtil;
/**
* @description: 获取文件目录信息
* @param: [target, userId, dirName]
@@ -149,6 +155,20 @@ public class SchisandraOssQiniuController {
Preconditions.checkNotNull(userId, "不能为空");
Preconditions.checkNotNull(fileName, "不能为空");
Preconditions.checkNotNull(bucket, "不能为空");
//设置热力图
Date date =new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate);
int count=1;
if (redisUtil.exist(key)){
count= Integer.parseInt(redisUtil.get(key));
redisUtil.set(key, String.valueOf(count+1));
}else {
redisUtil.set(key, String.valueOf(1));
}
// 获取文件输入流
InputStream is = file.getInputStream();
QiNiuOssClient bean = SpringUtil.getBean(userId);