文章目录
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" />