fastdfs 吗 支持windows_从零搭建分布式文件系统MinIO比FastDFS要更合适
前兩天跟大家分享了一篇關(guān)于如何利用FastDFS組件來自建分布式文件系統(tǒng)的文章,有興趣的朋友可以閱讀下《用asp.net core結(jié)合fastdfs打造分布式文件存儲系統(tǒng)》。通過留言發(fā)現(xiàn)大家雖然感興趣,但是都覺得部署比較麻煩。的確,fastdfs的部署很繁瑣,而且也沒有官方提供的針對.net core的sdk。而今天帶來的MinIO則是一個比fastdfs更好的選擇,可以讓你足夠簡單的來部署使用,官方也提供了足夠詳細的api文檔。下面就讓我們開始今天的正文吧。
這里說明下為什么今天才進行分享,因為就在幾個小時前官方才發(fā)布了最新的3.1.12版本的nuget包,解決了BucketExistsAsync的一個bug,不然你還得引用源碼才能正常運行。
作者:依樂祝
MinIO是什么?
官方對MinIO的介紹是:高性能,Kubernetes原生支持的對象存儲系統(tǒng)。MinIO的高性能軟件定義對象存儲套件可以使用戶能夠為機器學(xué)習(xí)、分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載構(gòu)建云原生支持的數(shù)據(jù)基礎(chǔ)設(shè)施。下面是幾個常用的網(wǎng)址
官網(wǎng):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#/windows
minio-dotnet:https://github.com/minio/minio-dotnet
MinIO對象存儲與其他有本質(zhì)的不同。它是為性能和S3 API而設(shè)計的并100%開源。MinIO非常適合具有嚴(yán)格安全性,在不同的工作負(fù)載范圍內(nèi)要求并提供關(guān)鍵任務(wù)可用性的大型私有云環(huán)境。
MinIO是高性能對象存儲的先驅(qū)
MinIO是世界上速度最快的對象存儲服務(wù)器。在標(biāo)準(zhǔn)硬件上,對象存儲的讀/寫速度分別為183 GB/s和171 GB/s,可以作為一組不同工作負(fù)載的主存儲層,這些工作負(fù)載包括Spark、Presto、TensorFlow、H2O.ai以及Hadoop HDFS的替代品。
建立在web規(guī)模的規(guī)則之上
MinIO利用了web定標(biāo)器來之不易的知識,為對象存儲帶來了一個簡單的定標(biāo)器模型。在MinIO,擴展從一個集群開始,這個集群可以與其他MinIO集群聯(lián)合以創(chuàng)建一個全局命名空間,如果需要,可以跨越多個數(shù)據(jù)中心。這也是《財富》500強中超過一半的人使用MinIO的原因之一。
為云而生
MinIO是在過去四年中從頭開始構(gòu)建的,是定義云的技術(shù)和架構(gòu)的原生版本。其中包括集裝箱化、與Kubernetes的協(xié)調(diào)、微服務(wù)和多租戶。沒有比Kubernetes更友好的對象存儲了。
排名第一的開源對象存儲服務(wù),對企業(yè)友好
MinIO在Apache V2許可和Affero通用公共許可版本3(AGPLv3)下是100%開源的。這意味著MinIO的客戶可以自由鎖定、自由檢查、自由創(chuàng)新、自由修改和自由重新分配。其部署的多樣性使該軟件變得更加強大,這是專有軟件永遠無法提供的。
亞馬遜S3兼容性的事實標(biāo)準(zhǔn)
Amazon的S3 API是對象存儲領(lǐng)域的事實標(biāo)準(zhǔn)。MinIO是S3兼容性的事實上的標(biāo)準(zhǔn),是第一個采用API和第一個添加對S3 Select支持的標(biāo)準(zhǔn)之一。包括微軟Azure在內(nèi)的750多家公司使用MinIO的S3網(wǎng)關(guān),這一數(shù)字超過了業(yè)內(nèi)其他公司的總和。
簡單并且功能非常強大
極簡主義是MinIO的一個指導(dǎo)性設(shè)計原則。簡單性減少了錯誤的機會,提高了正常運行時間,提供了可靠性,同時也為性能奠定了基礎(chǔ)。MinIO可以在幾分鐘內(nèi)安裝和配置。配置選項和變量的數(shù)量保持在最低限度,這將導(dǎo)致幾乎為零的系統(tǒng)管理任務(wù)和更少的故障路徑。
如何安裝部署MinIO
官方提供了傻瓜式的UI頁面來讓你下載部署。下面以windows系統(tǒng)為例來進行演示。
打開上面列出的幾個網(wǎng)址中的下載地址:
https://min.io/download#/windows
點擊右側(cè)的下載按鈕進行下載即可
然后設(shè)置一個文件存儲的路徑如:E:\MinIO\data
然后進入minio.exe所在的目錄,按住Shilft鍵然后點擊鼠標(biāo)右鍵打開powershell直接運行如下命令即可:
minio.exe server E:\MinIO\data看到如上所示的頁面說明MinIO就已經(jīng)運行起來了,簡單吧!這時候你用瀏覽器打開
http://127.0.0.1:9000?即可看到如下的UI
輸入上面顯示的Access Key 以及Secret Key登錄即可
.NET Core集成
這一小節(jié)我們就結(jié)合我們之前開發(fā)的文件存儲微服務(wù)來寫一個MinIO的Provider來支持MinIO的文件上傳與下載吧。
這里我只是簡單的演示下,所以就用官方提供的實例代碼繼續(xù)演示了。
首先引入nuget包,注意就在寫這篇文章前幾個小時官方才發(fā)布了最新的3.1.12版本的nuget包,解決了BucketExistsAsync的一個bug,所以今天才進行這篇文章的分享。
Install-Package Minio然后構(gòu)建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);
}
}
是不是很簡單。關(guān)于更多api的使用可以查看如下的文檔:
這是中文的api文檔哦,所以就不說太多了
https://docs.min.io/cn/dotnet-client-api-reference.html
總結(jié)
今天跟大家介紹了另一個而且是更好用的分布式文件存儲系統(tǒng),看了MinIO的資料后毫不猶豫的選擇了它,然后就無情的把FastDFS給丟棄了。如果你也有構(gòu)建分布式文件系統(tǒng)的需求不妨關(guān)注下這個MinIO。
往期精彩回顧【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程?★★★
.NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃
【.NET Core微服務(wù)實戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引
Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)
.NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了
10個小技巧助您寫出高性能的ASP.NET Core代碼
用abp vNext快速開發(fā)Quartz.NET定時任務(wù)管理界面
在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實現(xiàn)作業(yè)調(diào)度
現(xiàn)身說法:實際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化
關(guān)于C#異步編程你應(yīng)該了解的幾點建議
C#異步編程看這篇就夠了
給我好看
您看此文用
??·?秒,轉(zhuǎn)發(fā)只需1秒呦~
好看你就
點點
我
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的fastdfs 吗 支持windows_从零搭建分布式文件系统MinIO比FastDFS要更合适的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 便携式不锈钢管道焊接机器人_为什么越来越
- 下一篇: 频段表_VoLTE高低频段覆盖能力研究