首先來看一下Azure Blob storage服務種類, 可以分為底下四類, 本範例預計採用的是檔案這項服務
先點擊專案的Reference, 按下右鍵, 點選Add Connected Service如下
點選 Azure Storage, 按下Configure
按下Reenter your credentials登入Azure
登入成功之後, 會列出目前儲存體的清單, 按下Create a New Storage Account來新增一個新儲存體
在Name欄位填入名稱, 其他採預設選項, 然後按下Create
之後在列表就可以看到新的儲存體, 按下Add
之後開始跑進度條, 看到error, 心知不妙啊![]()

跑完之後, 果然報錯, 看到error說不支援.NETCoreApp 1.0版
接著把心一橫, 把所有1.0都調成1.1, 不然就是調成最新的版本
調整之後, error是消失了, 但是出現了驚嘆號, 不過重新建置專案後, 沒有任何錯誤訊息, 就不管它了, 當作它應該沒問題
經過Add Connected Service這個步驟之後, 就會產生如下圖的目錄
接著參考底下這篇
https://docs.microsoft.com/en-us/azure/storage/vs-storage-aspnet5-getting-started-blobs
在AppController.cs, 試著加入上傳到Azure的函式, 但是遇到底下的叫用函式不存在的錯誤
接著找到這篇, 說是要安裝Microsoft.WindowsAzure.ConfigurationManager
https://amoghnatu.net/2016/10/04/resolving-cloudconfigurationmanager-does-not-exist-in-the-current-context-compiler-error/
於是在NuGet找到後安裝
結果一樣不支援.NETCoreApp 1.0版, 這時候有點小火了
結果搜尋了N篇, 找到這篇,
http://stackoverflow.com/questions/30575689/how-do-we-use-cloudconfigurationmanager-with-asp-net-5-json-configs
Microsoft大神 Scott Hanselman 說ASP.NET 5不用CloudConfigurationManager了, 什麼?不用了 不用了 不用了, 到這火上來了
, 因為上述這篇, 用的就是ASP.NET 5, 而且文章發佈日是2016/12/2,
所以Microsoft的官方文件是在鬼打牆膩?還是已經過時了, 過時要更新啊, 讓人白做了半天工, 事已至此, 決定聽從Scott的建議, 也不用讀config的方式, 決定把Azure Storage連線資訊放在AppController.cs的靜態字串裡
打開config.json
在AppController.cs裡, 宣告一個靜態的字串放入在config.json找到的連線資訊
並加入Microsoft.WindowsAzure.Storage的參考
接著在AppController.cs裡, 加入上傳檔案到Azure的函式, 程式碼如下
在AppController.cs裡, 加入從Azure下載檔案的函式, 程式碼如下
修改FileUpload函式, 加入Azure上下傳功能, 並把從Azure的下載到本地端的連結丟回給前端的View
接著在wwwroot的目錄下新增azure的資料夾用來接收從Azure來的檔案
接著跑起來測試看看, 成功畫面如下
到Azure Portal檢查是否有成功上傳? 完成畫面如下

本文參考底下兩篇文章實作
https://docs.microsoft.com/en-us/azure/vs-azure-tools-connected-services-storage
https://docs.microsoft.com/zh-tw/azure/storage/vs-storage-aspnet5-getting-started-blobs
後記: 在實作的這篇的時候, 真的是寫到想翻桌
, 被Microsoft官方文件給搞到, 彷彿掉到Rabbit hole.