minio使用与注解事务管理
目录
一、minio启动
1、创建文件夹
2、cmd启动
3、查看端口地址以及密码
二、minio使用步骤
1、创建bucket,并且把Access Policy设置成public
2、代码
三、注解事务管理
一、minio启动
1、创建文件夹
2、cmd启动
3、查看端口地址以及密码
二、minio使用步骤
1、创建bucket,并且把Access Policy设置成public
2、代码
public class CommonServiceImpl implements CommonService {@Autowiredprivate MinioProperties properties;@Overridepublic String upload(MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {// 创建一个Minio的客户端对象MinioClient minioClient = MinioClient.builder().endpoint(properties.getEndpointUrl()).credentials(properties.getAccessKey(), properties.getSecreKey()).build();boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(properties.getBucketName()).build());// 如果不存在,那么此时就创建一个新的桶if (!found) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(properties.getBucketName()).build());} else { // 如果存在打印信息System.out.println("Bucket 'spzx-bucket' already exists.");}//获取文件名称//String filename = file.getOriginalFilename();//1、需要让每个上传文件名字唯一//2、根据当前日期,对当前文件进行分组 20240823//20240823/1.jpg,20240823自动会创建成文件夹String dateDir = DateUtil.format(new Date(), "yyyyMMdd");String uuid = UUID.randomUUID().toString().replaceAll("-", "");String filename = dateDir + "/" + uuid + file.getOriginalFilename();//文件上传minioClient.putObject(PutObjectArgs.builder().bucket(properties.getBucketName()).object(filename).contentType("image/jpeg").stream(file.getInputStream(),file.getSize(),-1).build());//获取上传文件在minio路径// 构建fileUrlString url = properties.getEndpointUrl()+"/"+properties.getBucketName()+"/"+filename ;return url;} }
三、注解事务管理
启动类增加注解@EnableTransactionManagement //开启注解方式的事务管理
业务实现方法增加注解@Transactional