10分钟上手Azure Blob Storage

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就行

    分别是computeEmulatorStorageEmulator

  • 我们可以右键图标然后点击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" />

参考资料

[1] Azure Storage官网文档
[2] Azure基础: Blob Storage

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章