文章目錄
Azure Blob Storage快速上手
背景
- 最近遇到了一個新需求, 就是要把存在Azure Blob Storage裏面的一些文件加上額外的屬性, 之前沒用過這個也是費了一上午搞明白一點, 下面簡單介紹下。
什麼是Azure Blob Storage?
Blob Storage的應用場景
- 存儲圖片, 文檔, 視頻等數據並且提供可以訪問的鏈接
- 用於cdn, 支持分佈式訪問
- 文件備份
- 音頻流/視頻流/文件流
環境搭建
- 這裏我們簡單介紹下如何在本地搭建一套
blob storage
- 英文比較好的可以直接看官方文檔
安裝
- 下載microsoftazurestorageemulator
- 如果使用過mysql的朋友, 可以把這個理解爲
mysql-server
安裝, 反正我是這麼理解的 哈哈, 安裝完成後可以在win10搜索框中輸入Azure Storage Emulator
, 不出意外應該能出現如下圖所示:
- 下載storage explorer
- 這個可以理解爲
navicat
類似一個數據可視化的工具, 大家安裝完成後應該可以看到如下圖:
運行
-
打開我們前面安裝的
Azure Storage Emulator
, 不出意外電腦右下角會出現如下圖:
-
右鍵點擊會出現···兩個···需要start的東西, 我們都點擊start就行
分別是
computeEmulator
和StorageEmulator
-
我們可以右鍵圖標然後點擊
Show Storage Emulator UI
, 應該會出現下圖:
-
簡單介紹下命令的意思:
AzureStorageEmulator.exe init : 初始化數據庫和配置
AzureStorageEmulator.exe start : 開啓
AzureStorageEmulator.exe stop : 停止
AzureStorageEmulator.exe status : 查看當前狀態
AzureStorageEmulator.exe clear : 刪除所有數據
AzureStorageEmulator.exe help [command] : 幫助
- 我們剛進去做兩件事就行
- 初始化
- 啓動
$ AzureStorageEmulator.exe init
$ AzureStorageEmulator.exe start
- 以上操作之後我們基本把環境搭建好了, 如果出現了一些意外, 可以
留言我
或者接着往後看是不是和我遇到一樣的問題
修改Blob Storage中的數據
基本操作
- 我們先創建一個container名字叫audios, 後面我們都會在這個container上操作, 如圖:
- 我們往裏面上傳幾首歌, 歌曲隨便找的
- 我們點擊歌曲右鍵查看屬性(properties), 圖中標紅字段就是我使用C#代碼添加進去的, 大家應該沒有, 下面介紹一下使用c#代碼操作blob storage的基本操作
使用C#修改文件屬性
- Nuget安裝
Microsoft.Azure.Storage.Blob
- 建立連接
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
- 獲取container對象
CloudBlobContainer container = blobClient.GetContainerReference("audios");
if (!container.Exists())
{
Console.WriteLine("container:{0} not exist, exit...", "audios");
return;
}
- 添加屬性
- 這裏我們添加一個類型爲
happy
的音樂
CloudBlockBlob blob = container.GetBlockBlobReference("xxx.mp3");
// 如果沒有這句話有可能會將之前已經添加的屬性給覆蓋掉
blob.FetchAttributes();
blob.Metadata.Add("type", "happy");
blob.SetMetadata();
- 查看添加結果, 如圖:
遇到問題
初始化端口被佔用
- 初始化時候我們需要三個端口10000, 10001, 10002, 下面展示下如果我們10000被佔用了該怎麼辦
- 找出端口對應PID
$ netstat -ano | findstr 10000
- 發現PID是4, 繼續用命令kill掉他
$ taskkill -PID 4 -F
C# Microsoft.Azure.Storage.Blob版本11.x部分功能不支持
- 版本換爲如下
<PackageReference Include="Microsoft.Azure.Storage.Blob" Version="10.0.3" />