1.利用minio上传下载图片、文件
minioService
@Data
@Component
@Service
public class MinIOService {
@Autowired
private MinioClient minioClient;
@Value("${minio.address}")
private String address;
@Value("${minio.accessKey}")
private String accessKey;
@Value("${minio.secretKey}")
private String secretKey;
@Value("${minio.bucketName}")
private String bucketName;
//1.连接Minio客户端
public MinioClient getMinioClient() {
MinioClient minioClient = MinioClient.builder()
.endpoint(address)
.credentials(accessKey, secretKey)
.build();
return minioClient;
}
//bucket桶是否存在,不存在创建
public void bucketExists(MinioClient minioClient) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
boolean b = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
//不存在创建
if (!b){
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
}
//上传
public String upload(MultipartFile file,String fileName) throws IOException, ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
MinioClient minioClient = getMinioClient();
if (minioClient == null) {
return "连接MinIO服务器失败";
}
bucketExists(minioClient);
if (fileName == null) {
String OriginalFilename = file.getOriginalFilename();
int index=OriginalFilename.lastIndexOf(".");
String extname=OriginalFilename.substring(index);
fileName =UUID.randomUUID().toString()+extname;
}
InputStream inputStream = file.getInputStream();
String contentType = getContentType(file.getOriginalFilename());
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object(fileName)
.stream(inputStream, file.getSize(), -1)
.contentType(contentType)
.build());
return fileName;
}
//删除
public boolean delete(String fileName){
MinioClient minioClient = getMinioClient();
if (minioClient == null) {
return false;
}
try {
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName)
.object(fileName).build());
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
private String getContentType(String filename) {
if (filename.endsWith(".png")) {
return "image/png";
} else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg")) {
return "image/jpeg";
} else if (filename.endsWith(".gif")) {
return "image/gif";
} else {
// Default to generic binary content type
return "application/octet-stream";
}
}
}
2.利用EasyExcel导出表格
TUser
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_user")
public class TUser extends BaseEntity
@ExcelProperty(value = "姓名")
private String name;
(工具类略)
Controller
@SaCheckPermission("lxy:user:export")
@Log(title = "用户", businessType = BusinessType.EXPORT)
@PostMapping("/export/{timeId}")
public void export(@PathVariable Long timeId,HttpServletResponse response) {
List<TRosterVo> RosterList = iTUserService.queryList(timeId);
ExcelUtil.exportExcel(RosterList, "名单", TRosterVo.class, response);
}
3.使用Redis技术
。。。