目录
一、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 { @Autowired private MinioProperties properties; @Override public 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路径 // 构建fileUrl String url = properties.getEndpointUrl()+"/"+properties.getBucketName()+"/"+filename ; return url; } }
三、注解事务管理
启动类增加注解@EnableTransactionManagement //开启注解方式的事务管理
业务实现方法增加注解@Transactional