博客
关于我
MinIO的搭建与应用
阅读量:396 次
发布时间:2019-03-05

本文共 2534 字,大约阅读时间需要 8 分钟。

MinIO 介绍与使用指南

MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合存储大容量非结构化数据,如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。一个对象文件可以是任意大小,从几 KB 到最大 5T 不等。

MinIO 安装

MinIO 的官方文档提供了全面的安装信息。使用 Docker 安装 MinIO 时,可以忽略分布式特性,因为从外部使用的角度看,MinIO 更像一个黑盒子,仅关注与之上传和下载操作,而无需关心其是单机存储还是分布式存储。

Docker 中创建并运行 MinIO

docker run -p 9800:9000 --name minioservice \-e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \-e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \-v /mnt/data:/data \-v /mnt/config:/root/.minio \minio/minio server /data

下载 MinIO 镜像并创建一个容器。以下是参数说明:

  • -p:自定义对外端口,内部保持 9000 即可。
  • -e:设置访问密钥和秘密密钥,默认为 minioadmin
  • -v:设置数据卷,用于存储数据和配置信息。

访问 MinIO 管理页面

访问服务器对外 IP 及 MinIO 容器的对外端口(通常为 9800)。MinIO 提供简洁的登录页面,使用创建时设置的访问密钥和秘密密钥或默认账户 minioadmin 登录。

创建 Bucket

  • 在管理页面右下角点击加号,选择创建 Bucket。
  • 创建后可修改访问策略或删除存储空间。
  • 文件上传与下载

  • 选择左侧的 Bucket,右下角点击上传文件。
  • 左侧选择 Bucket,右侧列表中可进行文件分享、预览、下载和删除操作。
  • 文件分享时可配置链接时效,最大支持 7 天。
  • MinIO 应用

    对于 .NET 与 MinIO 的交互,MinIO 提供了完整的 API 和 Nuget 包。安装包即可开始使用。

    安装 MinIO Nuget 包

    Install-Package Minio

    上传文件

    using MinIO;class Program{    static void Main(string[] args)    {        var endpoint = "xxx.xxx.xxx.xxx:9800";        var accessKey = "你的accesskey";        var secretKey = "你的secretKey";                try        {            var minio = new MinioClient(endpoint, accessKey, secretKey);            Run(minio).Wait();        }        catch (Exception ex)        {            Console.WriteLine(ex.Message);        }        Console.ReadLine();    }    private async static Task Run(MinioClient minio)    {        var bucketName = "pngs";        var location = "us-east-1";        var objectName = "test.png";        var filePath = @"C:\Users\admin\Desktop\test.png";        var contentType = "image/png";        try        {            if (!await minio.BucketExistsAsync(bucketName))            {                await minio.MakeBucketAsync(bucketName, location);            }            await minio.PutObjectAsync(bucketName, objectName, filePath, contentType);            Console.WriteLine("Successfully uploaded " + objectName);        }        catch (MinioException e)        {            Console.WriteLine("File Upload Error: {0}", e.Message);        }    }}

    获取 Bucket 列表

    var bucketList = await minio.ListBucketsAsync();

    获取文件列表

    var fileList = minio.ListObjectsAsync(bucketName);

    获取文件的 URL 地址

    var bucketName = "pngs";var objectName = "test.png";var expiresInt = 604800; // 有效期秒数,最大7天var fileUrl = await minio.PresignedGetObjectAsync(bucketName, objectName, expiresInt);

    获取到的 URL 可直接在浏览器中展示,如用于图片展示或文件下载,有效降低业务应用的存储负载。

    2020-10-19,望技术有成后能回来看见自己的脚步

    转载地址:http://xaozz.baihongyu.com/

    你可能感兴趣的文章
    SharePoint 2013 图文开发系列之定义站点模板
    查看>>
    PCB生产流程详解-ChatGPT4o作答
    查看>>
    PCB设计十条黄金法则
    查看>>
    SpringSecurity框架介绍
    查看>>
    PCI Express学习篇:Power Management(二)
    查看>>
    pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
    查看>>
    pcm转wav的方法及代码示例
    查看>>
    PC史上最悲剧的16次失败
    查看>>
    PC端恶意代码分析Lab1.1-5.1,从零基础到精通,收藏这篇就够了!
    查看>>
    PC端稳定性测试探索
    查看>>
    PC端编辑 但能在PC端模拟移动端预览的富文本编辑器
    查看>>
    PDB文件:每个开发人员都必须知道的
    查看>>
    springMVC学习(二)
    查看>>
    Pdfkit页眉和页脚
    查看>>
    PDF中的Pandoc语法突出显示不起作用
    查看>>
    pdf从结构新建书签_在PDF文件中怎样创建书签
    查看>>
    pdf做成翻页电子书_第一弹:常见BOOX电子书阅读器问题解答,这些技能你都会吗?...
    查看>>
    PDF工具箱-分割提取合并
    查看>>
    pdf打印骑缝章
    查看>>
    PDF文字识/编辑?这个工具真的很强大!
    查看>>