《Windows Azure Platform 系列文章目录》
Update 2015-05-10
强烈建议使用AzCopy工具,AzCopy命令行工具,是经过优化的、高性能Azure Storage管理工具。
具体请参考Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度
看过我之前几章内容的读者都知道,Azure China和Azure Global服务类型的Endpoint是不同的,比如我们创建一个Azure Storage,命名为leizhangstorage。则这个Azure Storage的Endpoint为
- Blob:http://leizhangstorage.blob.core.chinacloudapi.cn/
- Table:http://leizhangstorage.table.core.chinacloudapi.cn/
- Queue:http://leizhangstorage.queue.core.chinacloudapi.cn/
可以看到,Azure China Storage Endpoint为core.chinacloudapi.cn,与Global的不同。
本章我将会给大家介绍,如何管理Azure China Storage Account。一般性有三种管理方式:
1.使用Visual Studio Ultimate 2013的Server Explorer
2.使用Visual Studio Ultimate 2013进行开发
3.使用AzureStorageExplorer For CHN
在开始介绍之前,我们先登陆Azure China管理界面,创建leizhangstorage。位置我们设置为中国东部,即上海的数据中心。如下图:
注意:存储账号必须为英文小写
方法一:介绍使用Visual Studio Ultimate 2013的Server Explorer。
1.我们先以管理员身份,运行VS2013。
2.打开菜单栏,View->Server Explorer
3.展开Windows Azure->Storage->Attach External Storage
4.在弹出的界面中,输入Account name, Account key,并且需要设置endpoint
- Blob:http://leizhangstorage.blob.core.chinacloudapi.cn/
- Table:http://leizhangstorage.table.core.chinacloudapi.cn/
- Queue:http://leizhangstorage.queue.core.chinacloudapi.cn/
5.设置完毕后,我们就能看到创建成功的leizhangstorage这个存储账号了
我们依次展开leizhangstorage->Blobs,点击右键,选择Create Blob Container
在弹出的界面中,设置Container name为photos
注意:Container Name也必须为小写
(注意:我们鼠标左键选中之前创建的Container 即photos,可以在属性中设置这个container的属性,如下图。注意我们设置为Blob)
6.在Server Explorer中,双击我们之前创建成功的photos,在右侧列表中,点击Upload Blob按钮,上传一张照片
7.上传成功后,就可以看到执行结果。
上图列表中的URL,就是我们可以通过IE直接访问的了。(注意,因为笔者在步骤5中设置了读取权限为Blob,所以可以直接通过IE访问上传的照片)
如下图:
方法二:使用VS 2013进行开发
Azure China Storage Account连接字符串和Azure Global的不同,我们只需要修改相应的连接字符串,就可以直接连接Azure China Storage Account。
以我之前创建的存储账号leizhangstorage为例,只需修改以下红色部分的内容
- <YourStorageAccountName>,设置Account Name
- <YourStorageAccountKey>,设置Account Key
BlobEndpoint=http://<YourStoragAccountName>.blob.core.chinacloudapi.cn/;QueueEndpoint=http://<YourStoragAccountName>.queue.core.chinacloudapi.cn/;TableEndpoint=http://<YourStoragAccountName>.table.core.chinacloudapi.cn/;AccountName=<YourStoragAccountName>;AccountKey=<YourStoragAccountKey>
就可以直接连接Azure China Storage Account
方法三:使用AzureStorageExplorer_For_CN
注意:Azure Storage Explorer默认情况下,是把该Container下的所有Blob都列出来,且不分页显示
如果Blob内容很多,就会出现卡死的情况
这个是我的同事根据CodePlex上开源的Azure Storage Explorer(https://azurestorageexplorer.codeplex.com/),修改出来专门针对Azure China的管理工具。
大家可以在这里下载使用。
最新的Azure Storage Explorer已经同时支持Azure Global 和Azure China的Storage Account了。
下载地址在:http://azurestorageexplorer.codeplex.com/
这里我简单介绍下,如何使用Azure Storage Explorer,将本地的文件存储到Azure Storage云端。
1.登陆到Azure管理界面
Azure Global使用https://manage.windowsazure.com/,
Azure China使用https://manage.windowsazure.cn/
创建新的Azure Storage Account,如下图:
2.创建完毕后,点击创建成功的存储账号,如下图:
3.页面跳转,点击下图中的"管理访问密钥"
4.在弹出的窗口中,点击账户名称和主访问密钥的按钮,将存储账户名称和主访问密钥复制到记事本上
5.安装Azure Storage Explorer,并以管理员身份运行
在主界面上点击"Add Account",如下图:
在弹出的界面中,
Storage Account Name复制我们在步骤4中的内容
Storage Account Key复制我们在步骤4中的内容
注意:如果使用的Azure Global的存储账号,请选择Microsoft Azure Default
如果使用的是由世纪互联运维的Azure China,请选择Microsoft Azure China。如下图:
设置完毕后,按Save,进行保存。
6.回到Azure Storage Explorer主界面,我们在下拉框选择之前设置成功的leidemo
选择Blob Containers,然后选择"New"按钮,如下图:
7.在弹出的界面中,我们设置container name为public,
(注意Container Name只能使用小写字母)
Access Level分为三种类型:
- Off:不允许匿名用户读取该容器中的Blob;
- Public Container:匿名用户可以读取该Container,并且可以列出Container所有Blob内容;
- Public Blob:匿名用户只能读取Blob,即只能根据Blob的URL来读取Blob,无法列出Container下所有的Blob。
笔者需要实验匿名访问的功能,我们选择Public Blob。
(注意,如果是私密性很强的文件,需要将Access Level设置为Off)
8.创建完Blob后,我们可以点击创建成功的container public,然后点击下图的Upload,将本地的文件进行上传
笔者将本地的截图进行上传,并且可以在工具中查看到上传成功。
点击上图中的View按钮,可以查看到该png图片的属性,如下图:
我们打开IE浏览器,在地址栏中输入上图的uri中的值,可以以匿名身份查看到Azure Storage中的png图片。如下图:
======================================我是分隔符========================================
如果读者熟悉Shared Access Signature(SAS)的话,我们可以通过Azure Storage Explorer快速生成SAS签名。
我们选择Blob Container的名称,然后点击上图中Security
在弹出的窗口中,将Access Level设置为OFF,不允许匿名访问(图略)
然后在下图的Shard Access Signature中,设置SAS的相关属性
最后点击Test in Browser,测试使用SAS访问Private Container的内容。
私有表示,这个Container(文件夹)里面的内容,都不允许匿名访问
比如 http://mcdmuffinh5mkt.blob.core.chinacloudapi.cn/privatephotos/1.jpg
上面的container name是privatephotos,类型是私有(private)
所以不允许匿名文档,这也是为什么你之前上传的资源无法通过IE匿名访问
对于某些私密的信息,比如内部的图片、文件,可以设置private类型
公共blob,表示允许访问这个某一个资源,但是无法递归访问这个container (文件夹)
对于可以匿名访问资源,比如公共图片、招聘,可以设置公共blob
公共容器(container),表示可以递归访问这个container(文件夹)下的所有资源