对象文件存储服务(OSS)主要用于存储零散的文件,和直接存储到本地文件系统中相比,有以下的几个优势:

  1. 跨服务器可用
  2. 兼容Amazon S3 API
  3. 横向扩容
  4. 高可用
  5. 支持加密

MinIO就是一个高性能的文件服务,我们使用.NET来操作一下。

部署MinIO

最简单的办法,就是在Docker上运行MinIO。可以使用以下命令启动MinIO:

docker run -p 9000:9000 -p 9001:9001 --name minio \
-e "MINIO_ACCESS_KEY=<your-access-key>" \
-e "MINIO_SECRET_KEY=<your-secret-key>" \
minio/minio server /data --console-address ":9001"

其中,<your-access-key><your-secret-key>需要替换为自己的访问密钥和秘密密钥。

.NET操作

需要先安装MinIO的包,直接nuget安装即可:

install-package minio

导入Minio命名空间,并创建一个MinioClient对象。

using Minio;

var endpoint = "localhost:9000";
var accessKey = "<your-access-key>";
var secretKey = "<your-secret-key>"; var minio = new MinioClient minio = new MinioClient()
.WithEndpoint("endpoint")
.WithCredentials("accessKey", "secretKey")
.Build();

连接到MinIO服务器并执行一些基本操作。列出存储桶:

var buckets = await minio.ListBucketsAsync();
foreach (var bucket in buckets)
{
Console.WriteLine(bucket.Name + " " + bucket.CreationDateDateTime);
}

创建一个新的存储桶:

var args = new MakeBucketArgs().WithBucket(bucketName).WithLocation(loc);
await minio.MakeBucketAsync(args);

上传一个文件:

PutObjectArgs args = new PutObjectArgs().WithBucket(bucketName)
.WithFileName(fileName).WithObject(objectName);
await minio.PutObjectAsync(args);

下载文件:

var args = new GetObjectArgs().WithBucket(bucketName).WithObject(objectName)
.WithFile(fileName);
await minio.GetObjectAsync(args);

性能测试

经过测试,在本机运行docker的情况下,上传8M的文件,本地运行,上传0.6s,下载0.4s。1.G的文件,上传14s,下载9s。常用网络交换的文件一般不会太大,性能还可以。

体验.NET与文件存储服务MinIO的更多相关文章

  1. 第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 文件存储服务 1. 需求背景 2. 核心功能 3. 存储策略 3.1 本地存储 3.2 FastDFS存储 3.3 云存储 3.4 minio 4. 技术设计 文件存储服务 全套代码及资料全部完 ...

  2. 第2-3-3章 文件处理策略-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.2 文件处理策略 5.2.1 FileStrategy 5.2.2 AbstractFileStrategy 5.2.3 LocalServiceImpl 5.2.4 FastDfsServ ...

  3. 第2-3-4章 上传附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.3 接口开发-上传附件 5.3.1 接口文档 5.3.2 代码实现 5.3.3 接口测试 5.3 接口开发-上传附件 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令 第 ...

  4. 第2-3-5章 删除附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.4 接口开发-根据id删除附件 5.4.1 接口文档 5.4.2 代码实现 5.4.3 接口测试 5.4.4 测试ALI和FAST_DFS以及MINIO上传和删除的接口 5.4.4.1 阿里 ...

  5. 第2-3-6章 打包批量下载附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.6 接口开发-根据文件id打包下载附件 5.6.1 接口文档 5.6.2 代码实现 5.6.3 接口测试 5.7 接口开发-根据业务类型/业务id打包下载 5.7.1 接口文档 5.7.2 ...

  6. 第2-3-7章 个人网盘服务接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.8 导入其他接口代码 5.8.1 接口导入-分页查询附件 5.8.2 接口导入-根据业务类型/业务id查询附件 5.9 导入网盘服务接口 5.9.1 导入FileController 5.9 ...

  7. 第2-3-8章 分片上传和分片合并的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.10 接口开发-分片上传 5.10.1 分片上传介绍 5.10.2 前端分片上传插件webuploader 5.10.3 后端代码实现 5.10.3.1 接口文档 5.10.3.2 代码开发 ...

  8. 对象存储服务-Minio

    Mino 目录 Mino 对象存储服务 Minio 参考 Minio 架构 为什么要用 Minio 存储机制 纠删码 MinIO概念 部署 单机部署: Docker 部署Minio 分布式Minio ...

  9. nodejs实现一个文件存储服务

    nodejs实现一个文件存储服务 模拟文件上传下载功能: PUT 上传一个文件,URL表示在服务器上待上传文件的路径. GET 下载一个文件,URL表示在服务器上待下载文件的路径.

  10. 对象存储服务MinIO安装部署分布式及Spring Boot项目实现文件上传下载

    目录 一.MinIO快速入门 1. MinIO简介 2. CentOS7更换成阿里云镜像 3. 安装 3.1 下载 3.2 运行测试 4. 配置脚本执行文件 4.1 创建配置执行文件 4.2 执行 二 ...

随机推荐

  1. Java使用snmp协议采集服务器信息

    Java使用snmp协议采集服务器信息    一.snmp简介   SNMP是专门设计用于在 IP 网络管理网络节点(服务器.工作站.路由器.交换机及Hubs等)的一种标准协议,它是一种应用层协议. ...

  2. Vite2 如何设置打包后文件名

    vite.config.js build: { rollupOptions: { output: { entryFileNames: `assets/[name].${timestamp}.js`, ...

  3. netCore 配置跨域 封装成文件

    namespace Zhaoxi.Manage.MentApi.Utility.RegisterExt { /// <summary> /// 跨域扩展 /// </summary& ...

  4. 《使用Gin框架构建分布式应用》阅读笔记:p52-p76

    <用Gin框架构建分布式应用>学习第4天,p32-p76总结,总计25页. 一.技术总结 1.Go知识点 (1)iouti 书上使用ioutil包读取JSON文件,但是从go 1.16 开 ...

  5. 高性能 Nginx HTTPS 调优 - 如何为 HTTPS 提速 30%

    为什么要优化 Ngin HTTPS 延迟 Nginx 常作为最常见的服务器,常被用作负载均衡 (Load Balancer).反向代理 (Reverse Proxy),以及网关 (Gateway) 等 ...

  6. Linux(Redhat 7.6)安装PG(Postgresql 9.6.0)

    Linux(Redhat 7.6)安装PG(Postgresql 9.6.0) 1. 摘要 需要在Linux上安装postgres数据库,指定安装目录,简单测试各种配置.安装包下载地址: //源码 h ...

  7. 卧槽,WebStorm现在免费啦!

    前言 就在昨天1024程序员节,JetBrains突然宣布WebStorm现在对非商业用途免费啦.以后大家再也不用费尽心思的去找破解方法了,并且公告中的关于非商业用途定义也很有意思. 关注公众号:[前 ...

  8. PL/SQL查询中文乱码问题

    使用PL/SQL查询数据时,有中文的内容显示乱码,如下所示: 解决方案:配置环境变量 新建系统变量: 变量名:NLS_LANG 变量值:AMERICAN_AMERICA.ZHS16GBK 然后重启PL ...

  9. Webstorm 2024 安装使用 (附加永久激活码、补丁)

    下载安装 第二步,安装完成之后,下载补丁 下载地址(里面包含激活码) 完成,之后输入激活码 免责声明:本文中的资源均来自互联网,仅供个人学习和交流使用,严禁用于商业行为,下载后请在24小时内从电脑中彻 ...

  10. php技术交流群

    php技术交流群-656679284,为PHP广大爱好者提供技术交流,有问必答,相互学习相互进步!也欢迎大牛入群指导!