MinIO:基于Go实现的高性能、兼容S3协议的对象存储

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: MinIO:基于Go实现的高性能、兼容S3协议的对象存储

High Performance Object Storage for AI


译文:MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储


文档


项目地址:https://github.com/minio/minio

官网地址:https://min.io/

文档地址:https://docs.min.io/

Software Development Kits (SDK)

下载地址:https://min.io/download#/docker

目录

启动服务端

客户端

启动服务端

使用Docker启动minio服务端


docker run \

  -p 9000:9000 \

  -p 9090:9090 \

  --name minio \

  -e "MINIO_ROOT_USER=ROOTUSER" \

  -e "MINIO_ROOT_PASSWORD=CHANGEME123" \

  -v $(pwd)/data:/data \

  quay.io/minio/minio server /data \

  --console-address ":9090"


浏览器访问:http://localhost:9090


如果自己不想搭建服务,可以直接使用官方提供的测试服务


参数 值

Endpoint https://play.min.io

Access Key Q3AM3UQ867SPQQA43P2F

Secret Key zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG

客户端

官方提供了多种语言的客户端


.NET (minio-dotnet)

Go (minio-go)

Haskell (minio-hs)

Java (minio-java)

JavaScript (minio-js)

Python (minio-py)

以Java客户端为例


依赖


<!-- 操作minio的java客户端-->

<dependency>

   <groupId>io.minio</groupId>

   <artifactId>minio</artifactId>

   <version>8.4.3</version>

</dependency>


Java客户端上传文件示例代码


package com.example.demo;


import io.minio.BucketExistsArgs;

import io.minio.MakeBucketArgs;

import io.minio.MinioClient;

import io.minio.UploadObjectArgs;


public class FileUploader {


   public static void makeSureBucketExists(MinioClient minioClient, String bucketName) throws Exception {

       // 确保 bucketName 存在,否则会报错

       boolean found = minioClient.bucketExists(

               BucketExistsArgs.builder()

                       .bucket(bucketName)

                       .build());

       if (!found) {

           minioClient.makeBucket(

                   MakeBucketArgs.builder()

                           .bucket(bucketName)

                           .build());

       } else {

           System.out.println("Bucket already exists.");

       }

   }


   public static void main(String[] args)

           throws Exception {


       // 客户端

       MinioClient minioClient = MinioClient.builder()

               .endpoint("http://127.0.0.1:9000")

               .credentials("ROOTUSER", "CHANGEME123")

               .build();


       // bucket

       String bucketName = "bucket";


       // 确保bucket存在

       makeSureBucketExists(minioClient, bucketName);


       // 参数

       UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()

               .bucket(bucketName)

               .object("demo.txt")

               .filename("demo.txt")

               .build();


       // 上传文件

       minioClient.uploadObject(uploadObjectArgs);


       System.out.println("upload success");

   }

}


可以在浏览器看到刚上传的文件


1223d23adb7d597a7062e9d0b10568ef_084821a1a33343fb8fe4cbbe1e9f2c47.png

参考

SpringBoot + minio实现分片上传、秒传、续传

————————————————

版权声明:本文为CSDN博主「彭世瑜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/mouday/article/details/130931211

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
3月前
|
对象存储
minio临时凭证直传切换到阿里云oss
minio临时凭证直传切换到阿里云oss
189 1
|
4月前
|
存储 缓存 安全
Go 简单设计和实现可扩展、高性能的泛型本地缓存
本文将会探讨如何极简设计并实现一个可扩展、高性能的本地缓存。支持多样化的缓存策略,例如 最近最少使用(LRU)等。
73 0
Go 简单设计和实现可扩展、高性能的泛型本地缓存
|
4月前
|
存储 Ubuntu 安全
如何在 Ubuntu 18.04 上使用 Minio 设置对象存储服务器
在教程主要说明: - 在 Ubuntu 18.04 服务器上安装 Minio 服务器并将其配置为systemd服务。 - 使用Let's Encrypt设置 SSL/TLS 证书以保护服务器和客户端之间的通信。 - 通过HTTPS访问Minio的浏览器界面来使用和管理服务器。
278 1
|
5月前
|
存储 Java 应用服务中间件
MinIO对象存储详细安装教程
MinIO对象存储详细安装教程
355 2
|
5月前
|
NoSQL 安全 Linux
Linux|minio对象存储服务的部署和初步使用总结
Linux|minio对象存储服务的部署和初步使用总结
155 0
|
8月前
|
存储 安全 算法
对象存储服务-Minio
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
601 1
|
10月前
|
存储 Kubernetes 算法
开源免费的对象存储Minio
Minio是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合存储大容量、非结构化的数据。例如,图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小的,从几KB到5TB不等。
994 0
|
4月前
|
物联网 Go 网络性能优化
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式【1月更文挑战第21天】【1月更文挑战第104篇】
111 1
|
3月前
|
存储 缓存 网络协议
Go语言并发编程实战:构建高性能Web服务器
【2月更文挑战第6天】本文将通过构建一个高性能的Web服务器实战案例,深入探讨如何在Go语言中运用并发编程技术。我们将利用goroutine和channel实现高效的请求处理、资源管理和并发控制,以提升Web服务器的性能和稳定性。通过这一实战,你将更好地理解和掌握Go语言在并发编程方面的优势和应用。
|
4月前
|
存储 Cloud Native 数据挖掘
MinIO作为一种开源的对象存储系统,具有以下核心特点
MinIO作为一种开源的对象存储系统,具有以下核心特点
45 0