对于.net开发人员,这是一个新的领域,但是并不困难。本文将会介绍如何使用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作为存储服务。

http://www.aboutyun.com/thread-5722-1-1.html

Windows Azure入门教学:使用Blob Storage的更多相关文章

  1. Windows Azure入门教学系列 (七):使用REST API访问Storage Service

    本文是Windows Azure入门教学的第七篇文章. 本文将会介绍如何使用REST API来直接访问Storage Service. 在前三篇教学中,我们已经学习了使用Windows Azure S ...

  2. Windows Azure入门教学系列 (六):使用Table Storage

    本文是Windows Azure入门教学的第六篇文章. 本文将会介绍如何使用Table Storage.Table Storage提供给我们一个云端的表格结构.我们可以把他想象为XML文件或者是一个轻 ...

  3. Windows Azure入门教学系列 (五):使用Queue Storage

    本文是Windows Azure入门教学的第五篇文章. 本文将会介绍如何使用Queue Storage.Queue Storage提供给我们一个云端的队列.我们可以用Queue Storage来进行进 ...

  4. [转]Windows Azure入门教学系列 (六):使用Table Storage

    本文转自:http://blogs.msdn.com/b/azchina/archive/2010/03/11/windows-azure-table-storage.aspx 本文是Windows ...

  5. Windows Azure入门教学系列 (一): 创建第一个WebRole程序

    原文 Windows Azure入门教学系列 (一): 创建第一个WebRole程序 在第一篇教学中,我们将学习如何在Visual Studio 2008 SP1中创建一个WebRole程序(C#语言 ...

  6. Windows Azure入门教学系列 (九):Windows Azure 诊断功能

    本文是Windows Azure入门教学的第九篇文章. 本文将会介绍如何使用Windows Azure 诊断功能.跟部署在本地服务器上的程序不同,当我们的程序发布到云端之后,我们不能使用通常的调试方法 ...

  7. Windows Azure中文博客 Windows Azure入门教学系列 (一): 创建第一个WebRole程序

    http://blogs.msdn.com/b/azchina/ 本文转自:http://blogs.msdn.com/b/azchina/archive/2010/02/09/windows-azu ...

  8. Windows Azure入门教学系列 (二):部署第一个Web Role程序

    本文是Windows Azure入门教学的第二篇文章. 在第一篇教学中,我们已经创建了第一个Web Role程序.在这篇教学中,我们将学习如何把该Web Role程序部署到云端. 注意:您需要购买Wi ...

  9. Windows Azure入门教学系列 (四):使用Blob Storage

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

随机推荐

  1. 【Hadoop代码笔记】Hadoop作业提交之JobTracker等相关功能模块初始化

    一.概要描述 本文重点描述在JobTracker一端接收作业.调度作业等几个模块的初始化工作.想过模块的介绍会在其他文章中比较详细的描述.受理作业提交在下一篇文章中会进行描述. 为了表达的尽可能清晰一 ...

  2. HDU2686-Matrix & HDU3376-Matrix Again(费用流)

    比较简单的题了. 只需从左上角到右下角找两条路就可以了. 因为每个点只能走一次,所以拆点,限制流量为1. 因为求的是最大值,所以权值取反求最小值. 因为第一个点和最后一个点经过两次,只算一次,最后要减 ...

  3. jQuery语法总结及注意事项

    1.关于页面元素的引用通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom ...

  4. [html][转]常用返回顶部代码

    转至:http://jingyan.baidu.com/article/7082dc1ca6b928e40a89bd1a.html 一.使用HTML的锚标记最简单了 但是唯一的缺点就是样式不怎么样,会 ...

  5. JavaScript要点 (五) 函数定义

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明分号是用来分隔可执行JavaScript语句. 由于函数声明不是一个可执行语句,所以 ...

  6. 用RelativeLayout布局可以在imageview中写上文字

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. 教你50招提升ASP.NET性能(十一):避免在调试模式下运行网站

    (17)Avoid running sites in debug mode 招数17: 避免在调试模式下运行网站 When it comes to ASP.NET, one of the most c ...

  8. HDU 5289 Assignment(2015 多校第一场二分 + RMQ)

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  9. POJ3273-Monthly Expense (最小化最大值)

    题目链接:cid=80117#problem/E">click here~~ [题目大意] 农夫JF在n天中每天的花费,要求把这n天分作m组.每组的天数必定是连续的.要求分得各组的花费 ...

  10. 安装builderRobot到Rational Functional Tester和Performance Tester

    最近研究安装builder,稍微总结一下,以后继续补充: 1. Robot采用专业的测试脚本语言, 从而导致需要学习专门的API以及专门的语法外, 用进程化的Visual Basic作为脚本语言, 导 ...