软件 版本
docker 24.0.4
minio RELEASE.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;
    @Bean
    public 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 调研 文章目录MinIO 调研背景:官方文档:mc 相关命令使用示例Share 命令 - 共享子命令`share upload` - 共享上传子命令`share list` - 列出之前的共享Golang SDK 示例 - 文件上传 用于文件上传(upload file),使用 SDK 完成文件上传或者生成临时 url ,用于文件上传,可以避免 ak/sk 泄漏风险。 官方文档: MinIO 中文入门指南:http://docs.minio.org.cn/docs/ MinIO 客户
导航前言1.下载MinIO Client2.运行MinIO Client3.添加一个云存储服务4.验证5.policy命令 - 管理存储桶策略 minio分享文件的链接,最多支持分享七天 通过 MinIO客户端 管理存储桶策略的方式实现文件链接永久有效 1.下载MinIO Client 采用 Docker 方式 安装 拉取Docker稳定版镜像 docker pull minio/mc 2.运行MinIO Client docker run -it --entrypoint=/bin/sh mini
缓存大小是你内存大小的一半,不过如果你的内存小于8G的话,缓存是不开启的。 缓存对象过期时间是72小时。 每次过期时间的1/4时间点(每18小时)出发一次过期对象垃圾回收清理。 注意:上述配置不支持手动修改。 GET和PUT操作都会进行缓存。 GET 如果缓存中没有,则将新对象进行缓存,否则直接取缓存中的对象返回。
Minio是一个基于Apache License v2.0开源协议的工具存储服务,它兼容亚马逊S3云存储服务接口,适用于存储大容量非结构化的数据,比如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。\[1\] Minio具有以下功能特性: 1. Amazon S3兼容:Minio使用Amazon S3 v2/v4 API,可以使用Minio SDK、Minio Client、AWS SDK和AWS CLI访问Minio服务器。 2. 数据保护:Minio使用Minio Erasure Code来防止硬件故障,即使有一半以上的驱动器损坏,数据仍然可以恢复。 3. 高度可用:Minio服务器可以容忍分布式设置中高达(N/2)-1节点故障,并且可以配置在Minio和任意Amazon S3兼容服务器之间存储数据。 4. Lambda计算:Minio服务器通过兼容AWS SNS/SQS的事件通知服务触发Lambda功能,支持的目标包括消息队列(如Kafka、NATS、AMQP、MQTT)、Elasticsearch、Redis、Postgres和MySQL等数据库。 5. 加密和防篡改:Minio提供机密性、完整性和真实性保证的加密数据,使用AES-256-GCM、ChaCha20-Poly1305和AES-CBC支持服务器端和客户端加密。 6. 可对接后端存储:除了Minio自己的文件系统,还支持DAS、JBODs、NAS、Google云存储和Azure Blob存储后端存储。\[1\] 您可以通过自建Minio对象存储集群的方式来满足对存储服务的需求,特别是在不使用云厂商提供的存储服务的情况下。\[1\] Minio的官方网站是https://min.io/,您可以在该网站上找到更多关于Minio的信息和文档。\[2\] \[3\] #### 引用[.reference_title] - *1* [Minio对象存储](https://blog.csdn.net/weixin_30575309/article/details/99263291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [minio对象存储](https://blog.csdn.net/qq_17522211/article/details/126867470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]