所有文章 > 学习各类API > 使用MinIO搭建自己的文件存储服务
使用MinIO搭建自己的文件存储服务

使用MinIO搭建自己的文件存储服务

本文详细介绍了如何使用MinIO搭建自己的文件存储服务器。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_USERMINIO_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#代码片段。
#你可能也喜欢这些API文章!