博客
关于我
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/

    你可能感兴趣的文章
    oracle ORA-14402 OGG-01296
    查看>>
    oracle partition by list,深入解析partition-list 分区
    查看>>
    Oracle PL/SQL Dev工具(破解版)被植入勒索病毒的安全预警及自查通告
    查看>>
    oracle rac集群的东西之QQ聊天
    查看>>
    oracle scott趣事
    查看>>
    oracle script
    查看>>
    Oracle select表要带双引号的原因
    查看>>
    Oracle SOA Suit Adapter
    查看>>
    Oracle Spatial GeoRaster 金字塔栅格存储
    查看>>
    Oracle spatial 周边查询SQL
    查看>>
    Oracle Spatial空间数据库建立
    查看>>
    UML— 活动图
    查看>>
    oracle sqlplus已停止工作,安装完成客户端后sqlplus报“段错误”
    查看>>
    oracle SQLserver 函数
    查看>>
    Oracle Statspack分析报告详解(一)
    查看>>
    oracle tirger_在Oracle中,临时表和全局临时表有什么区别?
    查看>>
    Oracle Validated Configurations 安装使用 说明
    查看>>
    oracle where 条件的执行顺序分析1
    查看>>
    oracle 中的 CONCAT,substring ,MINUS 用法
    查看>>
    Oracle 中的 decode
    查看>>