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

本文共 2582 字,大约阅读时间需要 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/

    你可能感兴趣的文章
    nodejs-mime类型
    查看>>
    NodeJs——(11)控制权转移next
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    nodejs与javascript中的aes加密
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    Nodejs中的fs模块的使用
    查看>>
    nodejs包管理工具对比:npm、Yarn、cnpm、npx
    查看>>
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    nodejs字符与字节之间的转换
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    NodeJs学习笔记002--npm常用命令详解
    查看>>
    nodejs学习笔记一——nodejs安装
    查看>>
    NodeJS实现跨域的方法( 4种 )
    查看>>
    nodejs封装http请求
    查看>>
    nodejs常用组件
    查看>>
    nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
    查看>>
    Nodejs异步回调的处理方法总结
    查看>>
    NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
    查看>>