《Windows Azure Platform 系列文章目录

 

  熟悉Azure平台的读者都知道,Azure Blob有三层架构。如下图:(注意blob.core.chinacloudapi.net是Azure China的Service Endpoint)

  Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

  1.Blob Name: 存储账号名称

  2.Container Name,容器名称。概念上类似于文件夹

  3.Blob Name:文件名称

  

  Azure Storage Block Blob概念上类似网盘,用户可以把文件、图片、照片直接保存到Azure Block Blob中。

  相比传统的文件系统目录,Azure Block Blob只有一层结构,即Container/BlobName。Azure Block Blob不支持多级目录。

  假设客户的软件架构要求支持多级目录的话,迁移到Azure Block Blob就会遇到一些文件。如下图:

  Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度      

  qq.png这个文件的系统全目录是:D:\1\2\3\qq.png

  

   而我们还有一个同样的文件名qq.png,他的目录如下:

   Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

  与上面的qq.png的文件名是相同的,但是文件目录是不同的。

 

 

 

  遇到这种情况,我们有两种解决方案:

  一.使用关系型数据库,创建数据库表,实现多级目录与Azure Storage对应关系

  二.将Azure Blob Name进行重命名

 

 

  这里分别介绍一下这2个解决方案

  一.使用关系型数据库,创建数据库表,实现多级目录与Azure Storage对应关系

  在这种情况下,我们需要准备以下操作

  1.将文件系统的文件进行重命名,设置为guid。如111-222-333.jpg

  2.在关系型数据库创建如下表,字段为:

索引 源数据名称 AzureBlob数据名称 AzureBlobAccount AzureBlobContainerName AzureBlobURL
1 myphoto.png 111-222-333.jpg contoso photos https://contoso.blob.core.chinacloudapi.cn/photos/111-222-333.jpg
2 myword.docx AAA-BBB-CCC.docx contoso words https://contoso.blob.core.chinacloudapi.cn/words/AAA-BBB-CCC.docx

   通过把文件系统中的源数据,进行文件名的重命名,并且把重命名后的文件保存到Azure Storage中,以改进Azure Blob只有一层目录。

 

 

  二.直接修改Azure Blob Name,文件名设置为包含\

  这样我们把Blob Name修改为:1/2/3/qq.png和A/B/C/qq.png。修改为文件系统的全路径:

 

  如下面的连接:

  https://leizhangstorage.blob.core.chinacloudapi.cn/share/1/2/3/qq.png

      https://leizhangstorage.blob.core.chinacloudapi.cn/share/A/B/C/qq.png

     

  显示结果如下:

  Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度             Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

 

  这样就可以实现Azure Blob的多级目录了。

 

 

 

  另外如何可以方便的把本地文件夹的文件保存到Azure Storage中呢?这里推荐2种方法:

  1.使用AzCopy

  具体可以参考我之前的博客文章:Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

  

  将本地计算机某个目录下的所有文件和子目录,递归复制到Azure Storage中

  该命令如下:

AzCopy /Source:C:\myfolder /Dest:https://leizhangstorage.blob.core.windows.net/files /DestKey:[存储账号的Key] /S

  注意上面的命令行中,最后的参数是 /S

  假设C:\myfolder下有以下目录:

  C:\myfolder\abc.txt
  C:\myfolder\abc1.txt
  C:\myfolder\abc2.txt
  C:\myfolder\subfolder\a.txt
  C:\myfolder\subfolder\abcd.txt

  则执行上述AzCopy命令后,上面所有5个文件都会被复制到Azure Storage中。

  

  

  2.使用Blob Browser

  上面介绍的AzCopy毕竟是命令行工具,如果对命令行工具不熟悉的话,可以使用BlobBrowser

  BlobBrowser是GUI图形界面的工具,背后其实是利用AzCopy命令行工具。

  我们安装完BlobBrowser之后,可以在界面上进行配置。如下图:

  Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

  上图中,我们点击Add,增加新的存储账号信息:

  在弹出窗口中,输入以下信息:

  Windows Azure Storage (22) Azure Storage如何支持多级目录
    




Windows Azure Platform 系列文章目录
Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度

  上图中,

  -  Name输入显示名称

  -  Storage Account Name,输入存储账号名称

  -  Storage Account Key,输入存储账号的密钥

  注意,如果使用国内由世纪互联运维的Azure,需要在上图中,勾选Use China Endpoint。

  这样就可以使用Blob Browser的图形界面,来管理并上传下载Azure Storage Account了。

 

相关文章:

  • 2021-11-30
  • 2021-08-13
  • 2021-05-15
  • 2021-11-08
  • 2021-06-30
  • 2021-11-30
  • 2021-11-15
  • 2022-01-25
猜你喜欢
  • 2021-09-20
  • 2021-08-26
  • 2021-09-08
  • 2022-01-14
  • 2021-05-15
  • 2021-12-17
相关资源
相似解决方案