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

    你可能感兴趣的文章
    numpy数组索引-ChatGPT4o作答
    查看>>
    Numpy矩阵与通用函数
    查看>>
    numpy绘制热力图
    查看>>
    numpy转PIL 报错TypeError: Cannot handle this data type
    查看>>
    Nutch + solr 这个配合不错哦
    查看>>
    NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
    查看>>
    NutzWk 5.1.5 发布,Java 微服务分布式开发框架
    查看>>
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    NuxtJS 接口转发详解:Nitro 的用法与注意事项
    查看>>
    NVelocity标签使用详解
    查看>>
    Nvidia Cudatoolkit 与 Conda Cudatoolkit
    查看>>
    NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
    查看>>
    NVIDIA-cuda-cudnn下载地址
    查看>>
    nvidia-htop 使用教程
    查看>>
    nvidia-smi 参数详解
    查看>>
    nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
    查看>>
    NYOJ 1066 CO-PRIME(数论)
    查看>>
    nyoj------203三国志
    查看>>
    nyoj58 最少步数
    查看>>
    OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
    查看>>