zoukankan      html  css  js  c++  java
  • Windows Azure Storage (22) Azure Storage如何支持多级目录

      《Windows Azure Platform 系列文章目录

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

      

      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就会遇到一些文件。如下图:

            

      qq.png这个文件的系统全目录是:D:123qq.png

      

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

       

      与上面的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

         

      显示结果如下:

                   

      这样就可以实现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:myfolderabc.txt
      C:myfolderabc1.txt
      C:myfolderabc2.txt
      C:myfoldersubfoldera.txt
      C:myfoldersubfolderabcd.txt

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

      

      

      2.使用Blob Browser

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

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

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

      

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

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

      

      上图中,

      -  Name输入显示名称

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

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

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

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

  • 相关阅读:
    Ubuntu +PHP-fpm + Nginx 访问php界面空白的界面的分析
    Erlang 语言简介
    坐标体系WGS84/GCJ02/BD09
    Linux 系统的启动顺序
    母板页 难点---数据交换
    用户控件(二)--常见4 种路径问题解决:
    XML语言:可扩展的标记语言;
    用户控件(一) ----交换信息
    单选款复选款的选择并操作方法
    生成指定格式的流水号
  • 原文地址:https://www.cnblogs.com/threestone/p/4872080.html
Copyright © 2011-2022 走看看