使用Azure Blob Storage实现一个静态文件服务器
什么是Azure Blob?Storage
Azure Blob Storage是微軟Azure的對象存儲服務。國內的云一般叫OSS,是一種用來存儲非結構化數據的服務,比如音頻,視頻,圖片,文本等等。用戶可以通過http在全球任意地方訪問這些資源。這些資源可以公開訪問,也可以私有訪問。看到這些描述立馬就想到這這個服務可以用來做靜態文件服務。
如果你有免費賬戶那么可以使用5G的免費額度,用來存一些圖片跟JavaScript等小文件也足夠了。
Azure Blob Stoage的存儲結構。
創建存儲賬戶
創建賬戶跟其他服務類似,取個實例的名稱,選區域,還是那個套路哪個區域離你近就選哪個。
設置網絡,默認設置即可。
高級設置,把“需要安全傳輸”禁用,為了測試方便咱不走https。
點擊“創建”就開始部署實例,等待一會就可以完成了。
回到Azure Blob資源主界面開始新建容器,取個名字“static”,公共訪問級別選擇“Blob僅匿名訪問blob”。
點擊新建的容器,可以查看容器里的資源文件,可以上傳刪除文件。
每個上傳上去的文件,都會對應一個url,通過這個url可以直接進行訪問。
在瀏覽器里訪問一下這張圖片,可以在瀏覽器里顯示出來。
分析一下這個url:
https://azblob123.blob.core.windows.net/static/1.jpg
https://azblob123.blob.core.windows.net 代表帳戶實例地址
static 代表容器
1.jpg 代表文件
自定義域名
到這我們的文件可以上傳,可以訪問,已經做為靜態文件服務器使用了。但是這個域名不太友好,讓我們來給它換個自己的域名訪問。
選擇左邊菜單“自定義域”。
界面上提示有兩種方式可以設置自定義域名,我們使用CNAME來實現一下。
這里使用dnspod來管理域名。
添加一條記錄:
主機記錄:
files
記錄類型:
cname
記錄值:
azblob123.blob.core.windows.net
這有配置之后,訪問我自己的域名files.xbaby.xyz其實指向的是azblob123.blob.core.windows.net
我們使用新域名訪問下 http://files.xbaby.xyz/static/1.jpg 瀏覽器里出現了對應的圖片,表示我們的自定義域名起作用了。
使用SDK上傳文件
顯然每次上傳文件都要登錄到Azure的管理平臺太麻煩了,我們可以使用Azure Blob提供的.net sdk來制作一個小工具來方便上傳文件。
新建一個winform項目
新建一個winform項目,一個框放一個按鈕用來選擇文件,選擇后進行上傳。
從nuget上安裝AzureBlobStorage的sdk
Install-Package Azure.Storage.Blobs -Version 12.4.4使用sdk上傳文件需要一個連接串
實現上傳代碼:
private void btnSelectfiles_Click(object sender, EventArgs e){if (openFileDialog1.ShowDialog() == DialogResult.OK){var path = openFileDialog1.FileName;var fileName = path.Split("\\").Last();string connectionString = "DefaultEndpointsProtocol=https;AccountName=azblob123;AccountKey=GLtYbcXjy+KCOLUgIbdRoEPeWA+esNF/DWDNR7jABJuJrh46SuXfc7EOVS8yJXGXpZej3h/QFR9zzFrIAtuqrw==;EndpointSuffix=core.windows.net";var container = new BlobContainerClient(connectionString, "static");using (var file = File.OpenRead(path)){container.UploadBlob(fileName, file);MessageBox.Show($"{fileName}上傳成功!");}}}使用工具選擇一張圖片稍等一會圖片就會上傳上去啦。
總結
使用Azure Blob Storage可以方便的上傳跟管理各種圖片、文本、音視頻等文件。上傳的每個文件都有一個唯一的url對應,可以方便的通過http在全球訪問內進行訪問。使用這些特性我們可以輕松的把它當做靜態文件服務器來用。我們還可以通過定義域名跟自己的域名結合起來使用,獲得更加友好的使用體驗。Azure Blob Storage還提供了各種語言的sdk方便使用代碼來管理數據。
關注我的公眾號一起玩轉技術
總結
以上是生活随笔為你收集整理的使用Azure Blob Storage实现一个静态文件服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core + K8S + Lo
- 下一篇: 台湾RD技术谈|嘉宾郭家齊董大偉黃保翕