网络营销推广网站收录,智能科技网站模板,网站开发遇到的风险,专业模板网站设计公司前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章#xff0c;有兴趣的朋友可以阅读下《用asp.net core结合fastdfs打造分布式文件存储系统》。通过留言发现大家虽然感兴趣#xff0c;但是都觉得部署比较麻烦。的确#xff0c;fastdfs的部署很繁琐有兴趣的朋友可以阅读下《用asp.net core结合fastdfs打造分布式文件存储系统》。通过留言发现大家虽然感兴趣但是都觉得部署比较麻烦。的确fastdfs的部署很繁琐而且也没有官方提供的针对.net core的sdk。而今天带来的MinIO则是一个比fastdfs更好的选择可以让你足够简单的来部署使用官方也提供了足够详细的api文档。下面就让我们开始今天的正文吧。这里说明下为什么今天才进行分享因为就在几个小时前官方才发布了最新的3.1.12版本的nuget包解决了BucketExistsAsync的一个bug不然你还得引用源码才能正常运行。作者依乐祝原文地址https://www.cnblogs.com/yilezhu/p/12830123.htmlMinIO是什么官方对MinIO的介绍是高性能Kubernetes原生支持的对象存储系统。MinIO的高性能软件定义对象存储套件可以使用户能够为机器学习、分析和应用程序数据工作负载构建云原生支持的数据基础设施。下面是几个常用的网址官网https://min.io/开源地址https://github.com/minio/中文文档https://docs.min.io/cn/.NET 客户端api地址https://docs.min.io/cn/dotnet-client-api-reference.html下载地址https://min.io/download#/windowsminio-dotnethttps://github.com/minio/minio-dotnetMinIO对象存储与其他有本质的不同。它是为性能和S3 API而设计的并100%开源。MinIO非常适合具有严格安全性在不同的工作负载范围内要求并提供关键任务可用性的大型私有云环境。MinIO是高性能对象存储的先驱MinIO是世界上速度最快的对象存储服务器。在标准硬件上对象存储的读/写速度分别为183 GB/s和171 GB/s可以作为一组不同工作负载的主存储层这些工作负载包括Spark、Presto、TensorFlow、H2O.ai以及Hadoop HDFS的替代品。建立在web规模的规则之上MinIO利用了web定标器来之不易的知识为对象存储带来了一个简单的定标器模型。在MinIO扩展从一个集群开始这个集群可以与其他MinIO集群联合以创建一个全局命名空间如果需要可以跨越多个数据中心。这也是《财富》500强中超过一半的人使用MinIO的原因之一。为云而生MinIO是在过去四年中从头开始构建的是定义云的技术和架构的原生版本。其中包括集装箱化、与Kubernetes的协调、微服务和多租户。没有比Kubernetes更友好的对象存储了。排名第一的开源对象存储服务对企业友好MinIO在Apache V2许可和Affero通用公共许可版本3AGPLv3下是100%开源的。这意味着MinIO的客户可以自由锁定、自由检查、自由创新、自由修改和自由重新分配。其部署的多样性使该软件变得更加强大这是专有软件永远无法提供的。亚马逊S3兼容性的事实标准Amazon的S3 API是对象存储领域的事实标准。MinIO是S3兼容性的事实上的标准是第一个采用API和第一个添加对S3 Select支持的标准之一。包括微软Azure在内的750多家公司使用MinIO的S3网关这一数字超过了业内其他公司的总和。简单并且功能非常强大极简主义是MinIO的一个指导性设计原则。简单性减少了错误的机会提高了正常运行时间提供了可靠性同时也为性能奠定了基础。MinIO可以在几分钟内安装和配置。配置选项和变量的数量保持在最低限度这将导致几乎为零的系统管理任务和更少的故障路径。如何安装部署MinIO官方提供了傻瓜式的UI页面来让你下载部署。下面以windows系统为例来进行演示。打开上面列出的几个网址中的下载地址https://min.io/download#/windows点击右侧的下载按钮进行下载即可然后设置一个文件存储的路径如E:\MinIO\data然后进入minio.exe所在的目录按住Shilft键然后点击鼠标右键打开powershell直接运行如下命令即可minio.exe server E:\MinIO\data
看到如上所示的页面说明MinIO就已经运行起来了简单吧这时候你用浏览器打开http://127.0.0.1:9000 即可看到如下的UI输入上面显示的Access Key 以及Secret Key登录即可.NET Core集成这一小节我们就结合我们之前开发的文件存储微服务来写一个MinIO的Provider来支持MinIO的文件上传与下载吧。这里我只是简单的演示下所以就用官方提供的实例代码继续演示了。首先引入nuget包注意就在写这篇文章前几个小时官方才发布了最新的3.1.12版本的nuget包解决了BucketExistsAsync的一个bug所以今天才进行这篇文章的分享。Install-Package Minio
然后构建MinioClient var endpoint 127.0.0.19000;var accessKey minioadmin;var secretKey minioadmin;try{var minio new MinioClient(endpoint, accessKey, secretKey).WithSSL();FileUpload.Run(minio).Wait();}catch (Exception ex){Console.WriteLine(ex.Message);}
上传的代码如下private async static Task Run(MinioClient minio){var bucketName mymusic;var location us-east-1;var objectName golden-oldies.zip;var filePath C:\\Users\\username\\Downloads\\golden_oldies.mp3;var contentType application/zip;try{// Make a bucket on the server, if not already present.bool found await minio.BucketExistsAsync(bucketName);if (!found){await minio.MakeBucketAsync(bucketName, location);}// Upload a file to bucket.await minio.PutObjectAsync(bucketName, objectName, filePath, contentType);Console.WriteLine(Successfully uploaded objectName );}catch (MinioException e){Console.WriteLine(File Upload Error: {0}, e.Message);}}
是不是很简单。关于更多api的使用可以查看如下的文档这是中文的api文档哦所以就不说太多了https://docs.min.io/cn/dotnet-client-api-reference.html总结今天跟大家介绍了另一个而且是更好用的分布式文件存储系统看了MinIO的资料后毫不犹豫的选择了它然后就无情的把FastDFS给丢弃了。如果你也有构建分布式文件系统的需求不妨关注下这个MinIO。