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 cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.amazonaws.util.IOUtils;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter; import com.schisandra.oss.application.convert.SchisandraOssAliDTOConverter;
import com.schisandra.oss.application.dto.SchisandraOssAliDTO; import com.schisandra.oss.application.dto.SchisandraOssAliDTO;
import com.schisandra.oss.application.oss.core.ali.AliOssClient; 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.ali.AliOssConfiguration;
import com.schisandra.oss.application.oss.core.minio.MinioOssClient;
import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.application.oss.model.OssInfo;
import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.domain.bo.SchisandraOssAliBO; import com.schisandra.oss.domain.bo.SchisandraOssAliBO;
import com.schisandra.oss.domain.redis.RedisUtil;
import com.schisandra.oss.domain.service.SchisandraOssAliDomainService; import com.schisandra.oss.domain.service.SchisandraOssAliDomainService;
import io.minio.errors.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -26,8 +26,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.security.InvalidKeyException; import java.text.SimpleDateFormat;
import java.security.NoSuchAlgorithmException; import java.util.Date;
/** /**
* controller * controller
@@ -44,8 +45,10 @@ public class SchisandraOssAliController {
private SchisandraOssAliDomainService schisandraOssAliDomainService; private SchisandraOssAliDomainService schisandraOssAliDomainService;
@Resource @Resource
private AliOssConfiguration aliOssConfiguration; private AliOssConfiguration aliOssConfiguration;
@Autowired
private AliOssClient aliOssClient; private final String USER_OSS_PREFIX = "oss:user:heat";
@Resource
RedisUtil redisUtil;
@GetMapping("init") @GetMapping("init")
public void init(@RequestParam String userId){ public void init(@RequestParam String userId){
@@ -144,20 +147,10 @@ public class SchisandraOssAliController {
/** /**
* 查找bucket * 查找bucket
* @param userId * @param userId
* @return
* @throws ServerException
* @throws InsufficientDataException
* @throws ErrorResponseException
* @throws IOException
* @throws NoSuchAlgorithmException
* @throws InvalidKeyException
* @throws InvalidResponseException
* @throws XmlParserException
* @throws InternalException
*/ */
@PostMapping("seleteBucket") @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, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
AliOssClient bean = SpringUtil.getBean(userId); AliOssClient bean = SpringUtil.getBean(userId);
return Result.ok(bean.selectAllBucket()); return Result.ok(bean.selectAllBucket());
@@ -206,6 +199,19 @@ public class SchisandraOssAliController {
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空");
Preconditions.checkNotNull(bucket, "不能为空"); 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(); InputStream is = file.getInputStream();
AliOssClient bean = SpringUtil.getBean(userId); AliOssClient bean = SpringUtil.getBean(userId);

View File

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