使用minio给存储的对象添加过期时间

编程入门 行业动态 更新时间:2024-10-25 05:24:34

使用minio给存储的<a href=https://www.elefans.com/category/jswz/34/1771306.html style=对象添加过期时间"/>

使用minio给存储的对象添加过期时间

在一些场景中,储存的对象需要定时清理保证留出足够的磁盘空间,如果时linux的本地文件,需要采取定时任务清理,但是minio提供了这样的能力

环境

软件版本
docker24.0.4
minioRELEASE.2023-10-24T05-18-28Z (commit-id=97cc12fdc539361cf175ffc2f00480eec0836d82)

客户端(浏览器)

打开对应的桶

在这里添加

通过代码(这里以java为例)

配置类

@Configuration
public class MinioConfig {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.accessKey}")private String accessKey;@Value("${minio.secretKey}")private String secretKey;@Beanpublic MinioClient minioClient() {MinioClient client = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();try {client.setBucketLifecycle(SetBucketLifecycleArgs.builder().config(new LifecycleConfiguration(List.of(new LifecycleRule(Status.ENABLED,null,new Expiration((ResponseDate) null, 180, null),new RuleFilter("/"),"myDeleteRule",null,null,null)))).bucket("vits").build());} catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException |InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException |XmlParserException e) {throw new RuntimeException(e);}return client;}
}

上传工具类

@Slf4j
public class MinioUtils {public static String uploadFile(MinioClient minioClient, InputStream inputStream, String bucket, String filename) {try {boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("public").build());if (!found) {minioClient.makeBucket(MakeBucketArgs.builder().bucket("public").build());}ObjectWriteResponse response = minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(filename).stream(inputStream, inputStream.available(), -1).contentType(InferStatusConstant.WAV_CONTENT_TYPE).build());String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucket).expiry(7 * 24 * 60 * 60).object(filename).method(Method.GET).build());log.info("分享地址:" + url);return url;} catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException |InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException |XmlParserException e) {throw new RuntimeException(e);}}
}

测试类

@Test
public void uploadFileToMinio() {try (FileInputStream stream = new FileInputStream("/path/to/file")) {String url = MinioUtils.uploadFile(minioClient, stream, "public", "/path/to/file");System.out.println(url);} catch (Exception e) {}
}

更多推荐

使用minio给存储的对象添加过期时间

本文发布于:2023-11-16 21:17:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1633953.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对象   时间   minio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!