从零搭建分布式文件系统MinIO比FastDFS要更合适 (2)

image-20200505113236045

点击右侧的下载按钮进行下载即可

然后设置一个文件存储的路径如:E:\MinIO\data

然后进入minio.exe所在的目录,按住Shilft键然后点击鼠标右键打开powershell直接运行如下命令即可:

minio.exe server E:\MinIO\data

image-20200505113735303

看到如上所示的页面说明MinIO就已经运行起来了,简单吧!这时候你用浏览器打开

:9000 即可看到如下的UI

image-20200505113920173

输入上面显示的Access Key 以及Secret Key登录即可

image-20200505114013192

.NET Core集成

这一小节我们就结合我们之前开发的文件存储微服务来写一个MinIO的Provider来支持MinIO的文件上传与下载吧。

这里我只是简单的演示下,所以就用官方提供的实例代码继续演示了。

首先引入nuget包,注意就在写这篇文章前几个小时官方才发布了最新的3.1.12版本的nuget包,解决了BucketExistsAsync的一个bug,所以今天才进行这篇文章的分享。

Install-Package Minio

然后构建MinioClient

var endpoint = "127.0.0.1:9000"; 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。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwjjx.html