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:\1\2\3\qq.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:\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之后,可以在界面上进行配置。如下图:

  

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

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

  

  上图中,

  -  Name输入显示名称

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

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

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

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

时间: 2024-08-12 05:00:50

Windows Azure Storage (22) Azure Storage如何支持多级目录的相关文章

apache ant解压zip。支持多级目录解压

package cn.liuc.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Enumeration; import org.apache.tools.zip.ZipEntry; import org.apache.tool

CodeIgniter 让控制器可以支持多级子目录的 Router 类库

MY_Router.php 放到 system/application/libraries 目录下,就可以让 CI 的控制器支持多级子目录了.这样,你就可以在 system/application/controllers 目录下放置更多级别的目录,访问的方式就是 index.php/目录1/目录2/目录3/控制器/方法/参数请注意,你不需要 load,因为这个类是系统自动 load 的. MY_Router.php 代码 <?php if ( ! defined('BASEPATH')) exi

Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)

<Windows Azure Platform 系列文章目录> 细心的用户会发现,微软在国外和国内的数据中心建设都是成对的,比如香港数据中心(Asia East)和新加坡的数据中心(South East Asia).这是因为微软充分考虑了异地冗余的能力.在两对数据中心之间,比如香港和新加坡,会有专线连接,这个专线是内网数据中心之前数据同步专用的. 一般情况下,主节点和备用节点的对应关系如下: Primary Secondary North Central US South Central US

Azure 基础:Table storage

Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table.其中的 Table 就是本文的主角 Azure Table storage. Azure Table storage 是一个在云端存储结构化 NoSQL 数据的服务.它不仅存取速度快,而且效费比高.MSDN 上的说法是:成本显著低于传统 SQL!笔者最近在项目中用 Table storage 实现了一个日志表,在此和大家分享一下 Table storag

Azure CLI下载Azure Storage Container内的所有文件

在某些场景下,客户需要把Azure Storage的某一个container内的内容都下载到本地.当然采用PowerShell可以定时的进行下载的动作,但有时客户的环境是Linux或MacOS,这时需要采用Azure xplate CLI实现这个功能.本文将介绍如何采用Azure CLI实现这个功能. 安装Azure CLI,可以参考: http://www.cnblogs.com/hengwei/p/5183493.html http://www.cnblogs.com/hengwei/p/4

Windows Azure HandBook (2) Azure China提供的服务

<Windows Azure Platform 系列文章目录> 对于传统的自建数据中心,从底层的Network,Storage,Servers,Virtualization,中间层的OS,Middleware,Runtime,最上层的Application,Data,都需要企业进行管理.这就好比农村自建房. 对于公有云平台,一般分为三种类型: IaaS, PaaS和SaaS. Microsoft Azure平台属于IaaS和PaaS范畴. 1. IaaS 对于用户来说,底层的Network,

为Azure Web Site 添加ADFS验证支持之二 在代码里使用ADFS

下面我们来创建一个MVC 5.0的ASP.Net程序,并且将它部署到Azure Web Site上 通过Visual Studio 2015创建Web Project 在选择ASP.net模板的地方,更改验证方式   在选择验证方式时选择"Work And School Accounts",在文本框中填入 1.你公司的ADFS的Metadata的地址,这个地址可以找ADFS的管理员要到,通常如以下形式: https://{youradfs.yourcompany.com}/federa

Windows Azure HandBook (9) Azure性能测试(2)

<Windows Azure Platform 系列文章目录> 在上一节中,笔者介绍了我们在Azure性能测试之前,首先需要提交<渗透性测试表> Windows Azure HandBook (8) Azure性能测试(1) 接下来,笔者将介绍做性能测试时,需要注意的问题介绍一下: (1)尽可能把测试机,与Web服务器,放在同一个内网进行性能测试 这样可以把网络延时带来的负面因素,降到最低 (2)如果测试机在本地,Web服务器在云端.需要考虑本地网络是否有足够的上行带宽,还要考虑本

Windows 上安装 Azure PowerShell及Azure PowerShell部署虚拟机

一.Azure PowerShell部署 1.使用 PowerShellGet 在 Windows 上安装 Azure PowerShell 从 Azure PowerShell 版本 6.0 开始,Azure PowerShell 需要 PowerShell 版本 5.0. 若要查看在计算机上运行的 PowerShell 的版本,运行以下命令: #$PSVersionTable.PSVersion 2.Windows PowerShell升级 https://docs.microsoft.co