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,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
负载均衡 Java 中间件
使用Go语言构建高性能Web服务
Go语言作为一种快速、高效的编程语言,其在构建高性能Web服务方面具有独特优势。本文将探讨如何利用Go语言开发和优化Web服务,以实现更高的性能和可伸缩性。
|
4月前
|
对象存储
minio临时凭证直传切换到阿里云oss
minio临时凭证直传切换到阿里云oss
459 1
|
4月前
|
物联网 Go 网络性能优化
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式【1月更文挑战第21天】【1月更文挑战第104篇】
400 1
|
7天前
|
Go API 开发者
深入探讨:使用Go语言构建高性能RESTful API服务
在本文中,我们将探索Go语言在构建高效、可靠的RESTful API服务中的独特优势。通过实际案例分析,我们将展示Go如何通过其并发模型、简洁的语法和内置的http包,成为现代后端服务开发的有力工具。
|
21天前
|
安全 Java 测试技术
Go 高性能编程心法探秘
文章深入探讨了Go语言在高性能编程中的各种技巧,包括常用数据结构的使用、内存管理、并发编程策略,以及如何通过减少锁的使用、有效利用sync包中的工具来优化程序性能。
13 0
|
3月前
|
缓存 Java Go
如何用Go语言构建高性能服务
【6月更文挑战第8天】Go语言凭借其并发能力和简洁语法,成为构建高性能服务的首选。本文关注使用Go语言的关键设计原则(简洁、并发、错误处理和资源管理)、性能优化技巧(减少内存分配、使用缓存、避免锁竞争、优化数据结构和利用并发模式)以及代码示例,展示如何构建HTTP服务器。通过遵循这些原则和技巧,可创建出稳定、高效的Go服务。
|
4月前
|
缓存 负载均衡 网络协议
使用Go语言开发高性能服务的深度解析
【5月更文挑战第21天】本文深入探讨了使用Go语言开发高性能服务的技巧,强调了Go的并发性能、内存管理和网络编程优势。关键点包括:1) 利用goroutine和channel进行并发处理,通过goroutine池优化资源;2) 注意内存管理,减少不必要的分配和释放,使用pprof分析;3) 使用非阻塞I/O和连接池提升网络性能,结合HTTP/2和负载均衡技术;4) 通过性能分析、代码优化、缓存和压缩等手段进一步提升服务性能。掌握这些技术能帮助开发者构建更高效稳定的服务。
|
4月前
|
负载均衡 Go 调度
使用Go语言构建高性能的Web服务器:协程与Channel的深度解析
在追求高性能Web服务的今天,Go语言以其强大的并发性能和简洁的语法赢得了开发者的青睐。本文将深入探讨Go语言在构建高性能Web服务器方面的应用,特别是协程(goroutine)和通道(channel)这两个核心概念。我们将通过示例代码,展示如何利用协程处理并发请求,并通过通道实现协程间的通信和同步,从而构建出高效、稳定的Web服务器。
|
4月前
|
缓存 监控 测试技术
【Go语言专栏】使用Go语言构建高性能Web服务
【4月更文挑战第30天】本文探讨了使用Go语言构建高性能Web服务的策略,包括Go语言在并发处理和内存管理上的优势、基本原则(如保持简单、缓存和并发控制)、标准库与第三方框架的选择、编写高效的HTTP处理器、数据库优化以及性能测试和监控。通过遵循最佳实践,开发者可以充分利用Go语言的特性,构建出高性能的Web服务。
46 0
|
4月前
|
存储 负载均衡 Cloud Native
【专栏】Minio是一款高性能分布式对象存储服务,以其易用性和可扩展性著称
【4月更文挑战第28天】Minio是一款高性能分布式对象存储服务,以其易用性和可扩展性著称,适用于存储多媒体内容。通过组建Minio集群,可实现高可用性、高性能、可扩展性和数据保护。搭建集群包括安装Minio、配置集群参数、启动节点、验证集群状态、设置访问权限及可选的数据迁移步骤。Minio集群是实现可靠且高性能存储解决方案的理想选择,适合各种应用场景。
213 0