使用MinIO搭建自己的文件存储服务
作者:15726608245 · 2025-03-06 · 阅读时间:5分钟
本文详细介绍了如何使用MinIO搭建自己的文件存储服务器。MinIO是一个开源的、自托管的对象存储服务器,具备高性能、分布式、高可用性和水平扩展的特点,非常适合用于大规模数据存储和分析。通过本文,你将学习到MinIO的安装、配置以及在项目中的实际应用,帮助你搭建一个高效、安全的文件存储解决方案。
搭建一个文件存储服务器minio,实现文件存储
Minio是一个开源的、自托管的对象存储服务器,提供类似于云存储服务的功能。使用Minio可以搭建自己的私有云存储解决方案,也可以作为公共存储服务的替代方案。

安装
要安装Minio,可以访问Minio官网,根据系统选择合适的版本进行下载和安装。安装完成后,使用默认的账号 miniadmin 进行登录。管理控制台的默认端口是9001,客户端请求的端口是9000。
PS> setx MINIO_ROOT_USER admin
PS> setx MINIO_ROOT_PASSWORD 123456
ps> minio.exe server D:minioData --console-address ":9001"

知识点
- Bucket(存储桶): 是Minio的最顶层命名空间,类似于文件系统中的文件夹。用户可以创建多个Bucket来组织和管理对象。
- Object(对象): Minio存储的实际数据单元,每个Object可以是任意大小的文件。
- Presigned URL(预签名URL): 带有临时访问权限的URL,允许用户在一定时间内对特定Object进行操作。
使用
可以参考Asp.Net Core的示例来使用Minio。
using System;
using Minio;
using Minio.Exceptions;
using System.Threading.Tasks;
class FileUpload
{
static void Main(string[] args)
{
var accessKey = "Si27eMmz123123B1zf96rmyezz";
var secretKey = "123123";
var endpoint = "421231231238";
try
{
var minio = new MinioClient()
.WithEndpoint(endpoint, 9000)
.WithCredentials(accessKey, secretKey)
.Build();
FileUpload.Run(minio).Wait();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private async static Task Run(MinioClient minio)
{
var bucketName = "filebacket";
var objectName = "Surface_Laptop_Go_003.png";
var filePath = @"C:UsersPridePicturesSurface_Laptop_Go_003.png";
try
{
var beArgs = new BucketExistsArgs().WithBucket(bucketName);
bool found = await minio.BucketExistsAsync(beArgs).ConfigureAwait(false);
if (!found)
{
var mbArgs = new MakeBucketArgs().WithBucket(bucketName);
await minio.MakeBucketAsync(mbArgs).ConfigureAwait(false);
}
var listObjectsArgs = new ListObjectsArgs().WithBucket(bucketName);
var filelist = await minio.ListObjectsAsync(listObjectsArgs);
var expiryInSeconds = 7 * 24 * 60 * 60;
var args = new PresignedGetObjectArgs().WithBucket(bucketName).WithObject(objectName).WithExpiry(expiryInSeconds);
var aaa = await minio.PresignedGetObjectAsync(args).ConfigureAwait(false);
Console.WriteLine($"文件临时预览链接: {bucketName}");
}
catch (MinioException e)
{
Console.WriteLine("File Upload Error: {0}", e.Message);
}
}
}

参考
通过本文的介绍,希望你能更好地理解如何使用Minio搭建自己的文件存储服务。Minio以其高性能和易用性成为越来越多企业和开发者的选择。
FAQ
问:Minio是什么?
- 答:Minio是一个开源的、自托管的对象存储服务器,提供类似于云存储服务的功能。它可以帮助用户搭建自己的私有云存储解决方案,也可以作为公共存储服务的替代方案。
问:如何安装Minio?
- 答:要安装Minio,可以访问Minio官网,根据系统选择合适的版本进行下载和安装。安装完成后,使用默认的账号
miniadmin进行登录,管理控制台的默认端口是9001,客户端请求的端口是9000。安装过程中需要设置环境变量如MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。
问:Minio中的Bucket和Object是什么?
- 答:在Minio中,Bucket(存储桶)是最顶层的命名空间,类似于文件系统中的文件夹。用户可以创建多个Bucket来组织和管理对象。Object(对象)是Minio存储的实际数据单元,每个Object可以是任意大小的文件。
问:什么是Presigned URL,如何在Minio中使用?
- 答:Presigned URL(预签名URL)是带有临时访问权限的URL,允许用户在一定时间内对特定Object进行操作。在Minio中,可以通过编程接口生成Presigned URL,指定Bucket名称、Object名称和过期时间等参数,以便临时访问文件。
问:如何使用Asp.Net Core与Minio进行文件操作?
- 答:在Asp.Net Core中使用Minio可以通过MinioClient类进行。首先需要设置访问密钥和端点,然后通过MinioClient的实例方法来检查Bucket是否存在、创建Bucket、上传对象以及生成Presigned URL等操作。具体代码示例可以参考文章中的C#代码片段。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 交叉熵的Numpy实现:从理论到实践
- Google DeepMind发布 Genie 3与Shopify:2小时上线电商3D样板间实战
- Gemini Deep Research 技术实战:利用 Gemini Advanced API 构建自动化的深度研究 Agent
- FLUX.1 Kontext API 使用完全指南:解锁文本驱动的智能图像编辑
- 如何防范User-Agent信息伪装引发的API访问风险
- 苹果支付流程:从零开始的接入指南
- 全面掌握 OpenAPI 规范:定义、生成与集成指南
- 深入解析granularity是什么?颗粒度中文详解
- 开发者如何利用缓存技术提升API性能
- Orbitz API 全攻略:旅行社高效整合酒店、航班与租车服务的必读指南
- REST API命名规范的终极指南:清晰度和一致性的最佳实践
- Go:基于 MongoDB 构建 REST API — Fiber 版