springboot 定时删除minio某个桶里的数据

#每天2点删除2个小时前的所有数据
/*[秒] [分] [小时] [日] [月] [周] [年]*/
/*扫描临时文件定时删除*/
@Scheduled(cron = "0 0 2 * * ?")
public void scanBatchDel() {
    try {
        //1、查看临时文件夹是否存在,不存在创建一个
        String bucketName="temp";
        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
        if (!found){
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
        }
        Iterable<Result<Item>> list = minioClient.listObjects(
                ListObjectsArgs.builder().bucket(bucketName).build());
        Date date = DateUtil.beforeTime(2);
        List<DeleteObject> objects = new LinkedList<>();
        list.forEach(e->{
            try {
                ZonedDateTime zonedDateTime = e.get().lastModified();
                Date imgDate = Date.from(zonedDateTime.toInstant());
                if (imgDate.before(date)){
                   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是springboot如何接入minio,这个问题涉及到在springboot中引入minio依赖、配置连接信息以及使用minio进行文件上传等方面。具体步骤可以参考以下内容: 1. 在pom.xml中引入minio依赖: ```xml <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.1.0</version> </dependency> ``` 2. 在application.yml或application.properties中配置minio连接信息: ```yaml spring: minio: endpoint: http://minio.example.com accessKey: accesskey secretKey: secretkey ``` 3. 创建MinioTemplate类用于封装MinioClient操作: ```java @Configuration public class MinioConfig { @Value("${spring.minio.endpoint}") private String endpoint; @Value("${spring.minio.accessKey}") private String accessKey; @Value("${spring.minio.secretKey}") private String secretKey; @Value("${spring.minio.bucketName}") private String bucketName; @Bean public MinioClient minioClient() throws Exception { return MinioClient.builder() .endpoint(endpoint) .credentials(accessKey, secretKey) .build(); } @Bean public MinioTemplate minioTemplate(MinioClient minioClient) { return new MinioTemplate(minioClient, bucketName); } } public class MinioTemplate { private final MinioClient minioClient; private final String bucketName; public MinioTemplate(MinioClient minioClient, String bucketName) { this.minioClient = minioClient; this.bucketName = bucketName; } public void upload(String objectName, InputStream inputStream, long size, String contentType) throws Exception { PutObjectArgs args = PutObjectArgs.builder() .bucket(bucketName) .object(objectName) .stream(inputStream, size, -1) .contentType(contentType) .build(); minioClient.putObject(args); } public void remove(String objectName) throws Exception { RemoveObjectArgs args = RemoveObjectArgs.builder() .bucket(bucketName) .object(objectName) .build(); minioClient.removeObject(args); } public String getObjectUrl(String objectName) { return minioClient.getObjectUrl(bucketName, objectName); } } ``` 4. 在Controller中使用MinioTemplate上传文件: ```java @RestController public class FileController { @Autowired private MinioTemplate minioTemplate; @PostMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) throws Exception { String objectName = file.getOriginalFilename(); InputStream inputStream = file.getInputStream(); long size = file.getSize(); String contentType = file.getContentType(); minioTemplate.upload(objectName, inputStream, size, contentType); String objectUrl = minioTemplate.getObjectUrl(objectName); return objectUrl; } } ``` 以上就是springboot接入minio的大致步骤,具体细节还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值