使用Blob Storage

本文是 Windows Azure 入门教学 的第四篇文章。

本文将会介绍如何使用 Blob Storage。 Blob Storage可以看做是云端的文件系统。与桌面操作系统上不同,我们是通过 REST API来进行对文件的操作。有关 REST API的详细信息,请参见 Blob 服务 API 。

为了方便 .NET开发人员,我们在 SDK中提供了 Microsoft.WindowsAzure.StorageClient类来帮助发送REST请求。

在开始本教学之前,请确保你从Windows Azure 平台下载 下载并安装了最新的 Windows Azure开发工具。 本教学使用 Visual Studio 2010作为开发工具。

步骤一:创建解决方案和项目

由于我们要在本地模拟环境下测试 Blob Storage,首先,请确保 Storage Emulator已经启动。我们可以找到管理器的进程手动启动或者让 Visual Studio 2010帮助我们启动他。

右击工具栏中 Windows Azure模拟器的图标,选择” Show Storage Emulator UI”。弹出如下图所示的窗口:

我们要关注的是 Service management中 Blob所在的一行。要确保 Status为 Running。

确认完毕后启动 Visual Studio 2010,并且新建一个 Console项目。

步骤二:添加 SDK 程序集引用

请在项目属性页里确认项目的 Target framework的值是 .NET Framework 4或 .NET Framework 3.5。然后添加对 C:/Program Files/Windows Azure SDK/v1.3/ref/Microsoft.WindowsAzure.StorageClient.dll的引用。该路径为 SDK默认安装路径,如果你不能在这个路径中找到 Microsoft.WindowsAzure.StorageClient.dll请从 SDK安装路径中寻找。

步骤三:添加代码

首先引用命名空间:

using   Microsoft.WindowsAzure;

using   Microsoft.WindowsAzure.StorageClient;

然后在 Main方法中加入如下代码:

static   void   Main(string [] args)

{

     var   storageAccount =  CloudStorageAccount .DevelopmentStorageAccount;

     var   blobclient = storageAccount.CreateCloudBlobClient();

     //  检查 container 是否被创建,如果没有,创建 container

     var   container = blobclient.GetContainerReference("helloworldcontainer" );

     container.CreateIfNotExist();

     //  新建一个 blob ,内容为 "Hello World"

     var   blob = container.GetBlobReference("myfile" );

     blob.UploadText("Hello World!" );

     //  读取并显示 blob 内容

     var   blobcontent = blob.DownloadText();

     Console .WriteLine(blobcontent);

     //  删除 blob

     var   succeed = blob.DeleteIfExists();

     Console .WriteLine(succeed ?  "Delete Succeed"   :  "Delete Failed" );

     Console .ReadLine();

}
步骤四:观察并分析代码

步骤三中的代码中,首先我们通过 CloudStorageAccount.DevelopmentStorageAccount来说明我们使用的本地的 Development Storage自带账户而不是真正的云端存储服务账户。 (如果要用真实账户可以使用

//DefaultEndpointsProtocol=https 可以改成 DefaultEndpointsProtocol=http 表示用 HTTP 而不是 HTTPS

CloudStorageAccount .Parse("DefaultEndpointsProtocol=https;AccountName=[ 用户名 ];AccountKey=[ 密码 ]" );


来实例化对象 )然后通过该账户类来实例化一个 Blob客户端类。这两步是使用 SDK中 StorageClient程序集来调用 Blob Storage服务的必要步骤。接下来的代码逻辑可以分为四部分:

  • 检查 container是否被创建,如果没有,创建 container
  • 新建一个 blob,内容为 "Hello World"
  • 读取并显示 blob内容
  • 删除 blob

第一部分,我们得到一个 container的引用。就作用来说我们大致上可以把 container类比成是桌面操作系统中的文件夹。我们在得到引用后检查该 container是否存在。注意如果是用的真实账号,当调用 CreateIfNotExist()方法后就有 REST请求发出了。

后面几部分代码非常简单。我们可以看到 SDK提供给我们的 API是十分简单好用的。

步骤五:运行程序

按 F5调试程序。如果一切正常你将会看到输出的消息如下图所示:



步骤六:创建新的 Storage Account

使用支持 SilverLight的浏览器打开 https://windows.azure.com/。 (注意:您可能需要输入您的 Live ID和密码来通过身份验证 ) 点击 New Storage Account:



在 Create a New Storage Account对话框里,在标记为 Choose a subscription 的下拉框里选择一个订阅选项:


在标记为 Enter a URL的文本框里输入一个 URL前缀来指定它的 URL:

选择区域:

最后点击 Create按钮完成创建。等待创建过程完成后,我们可以看到系统给我们分配了 3个 URL,分别是 Blob URL、 Table URL和 Queue URL,以及刚才我们自己输入的用户名。

然后点击属性栏里的 Primary access key或者 Secondary access key可以看到这些 key的值。点击 View Storage Access Keys对话框里的 Copy to Clipboard按钮就可以拷贝到粘贴板里了。

步骤七:使用 Storage Account 运行程序

将代码里的 :

CloudStorageAccount .DevelopmentStorageAccount
替换成 :



CloudStorageAccount .Parse("DefaultEndpointsProtocol=https;AccountName=[ 用户名 ];AccountKey=[ 密码 ]" )
根据刚才创建的 Storage Account填入用户名和密码。最后运行程序的结果是一样的。但是这次用的是 Windows Azure上的 Blob Storage作为存储服务。


联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2022

备案号:京ICP备15003423号-3