65.9K
CodeProject 正在变化。 阅读更多。
Home

运行第一个 Azure Blob 程序的 7 个简单步骤

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.59/5 (8投票s)

2010年1月24日

CPOL

5分钟阅读

viewsIcon

91560

运行第一个 Azure Blob 程序的 7 个简单步骤。

目录

引言

在本节中,我们将创建第一个使用 Azure Blob 的程序。本文将创建一个简单的网页,用于上传图片文件并将其存储在 Azure Blob 中。我们还创建了一个简单的搜索文本框,可以帮助我们按图片文件名搜索 Blob。

如果你像我一样真的有点懒,可以下载我的 一步步学习 Azure 视频,其中将详细地、一步步地解释 Azure 的所有内容。

还可以观看我最新的 2 小时 Azure DevOps 教程:

我的其他 Azure FAQ 文章

第 1 步:确保已准备好所需的一切

如果你是 Azure 的完全新手,请确保你已具备所有先决条件。你可以阅读 本文 来了解基本先决条件。

第 2 步:我们将做什么?

Azure Blob 用于存储大型项,例如文件,换句话说,它是一个文件存储系统。在本文中,我们将创建一个简单的程序来将图片文件上传到 Azure Blob 系统。

第 3 步:创建 Web 角色

第一步是创建一个 Web 角色项目。如果你是 Azure 新手,可以阅读 本文 来了解如何创建 Web 角色项目。所以,让我们创建一个名为 'BlobStorage' 的简单项目。创建项目后,它会创建两个项目:一个云服务项目,另一个是 Web 角色项目。云服务项目包含你的云服务项目所需的所有必要配置,而 Web 角色项目就是你的 ASP.NET 项目。

第 4 步:设置 Blob 连接字符串

接下来,需要在服务配置文件中定义 Blob 连接字符串。展开 'BlobStorage' 项目,右键单击 Roles,然后选择 Properties。

选择 Properties 后,转到 Settings 选项卡,然后添加 Blob 连接字符串,如下图所示。在下面的图中,我们将 Blob 连接字符串的名称添加为 BlobConnectionString

单击右侧的省略号,然后选择“Use development storage”。使用设置 UI 所做的所有更改都将反映在“ServiceConfiguration”文件中,如上所示。

第 5 步:在 WebRole 的 Onstart 事件中创建 Blob

现在是时候开始编码了。打开 Web 角色项目,然后打开 'WebRole.cs' 文件。

现在,让我们在 'onstart' 事件中编写代码来创建 Blob 容器。

public override bool OnStart()
{

}

使用 CloudStorageAccount static 类来设置配置环境。

public override bool OnStart()
{
// Set the configuration file
DiagnosticMonitor.Start("DiagnosticsConnectionString");
CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
{
configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
});
....
....
....
....
}

下一步是使用在设置 Web 角色项目时提供的 Blob 连接字符串来获取 cloudstorageaccount 对象的引用。

// get the blob connection string
CloudStorageAccount objStorage = 
	CloudStorageAccount.FromConfigurationSetting("BlobConnectionString");

获得存储帐户对象后,使用 Blob 端点来创建 Blob 客户端。

// get the client reference
CloudBlobClient objClient = new CloudBlobClient
	(objStorage.BlobEndpoint, objStorage.Credentials);

为容器命名,并使用刚刚通过 Blob 端点创建的客户端对象来创建容器对象。调用容器的 'CreateIfnotExist' 方法,以确保仅在容器不存在时才创建它,从而避免任何错误。

// Get the reference to container
CloudBlobContainer objContainer = objClient.GetContainerReference("mycontainer");

// Create the container if it does not exist
objContainer.CreateIfNotExist();

第 6 步:编写你的 ASP.NET UI 代码

最后一步是创建 ASPX 页面,该页面将帮助我们将图片文件上传到我们在 WebRole.cs 文件中刚刚创建的 Blob 容器。从下图可以看出,我们创建了一个浏览按钮,用于上传图片文件,以及一个搜索文本框,用于搜索 Blob 文件。

因此,创建下面定义的 ASPX UI。

在上面的 ASPX CS UI 中,首先获取对以下指定命名空间的引用。

using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;

在文件上传按钮中,我们需要插入以下代码片段来上传文件。因此,获取对容器对象 'MyContainer' 的访问权限,并调用 'GetBlobReference' 函数来获取对云 Blob 对象的访问权限。

// Get the storage account reference
CloudStorageAccount objStorage = 
	CloudStorageAccount.FromConfigurationSetting("BlobConnectionString");
// get the Client reference using storage blobend point
CloudBlobClient objClient = 
	new CloudBlobClient(objStorage.BlobEndpoint, objStorage.Credentials);
// Get Container reference
CloudBlobContainer objContainer = objClient.GetContainerReference("mycontainer");
// Get blob reference
CloudBlob obj =objContainer.GetBlobReference(FileUpload1.FileName.ToString());

设置云对象的元数据,然后打开 Blob 流对象以写入文件。完成后不要忘记关闭 Blob 流对象。

// Set meta values
obj.Metadata["MetaName"] = "meta";
// Open a stream using the cloud object
BlobStream blobstream = obj.OpenWrite();
// Write the stream to the blob database
blobstream.Write(FileUpload1.FileBytes, 0, FileUpload1.FileBytes.Count());
blobstream.Close();

上传文件后,我们将浏览 Blob 列表以获取容器中存在的 Blob 列表。

// Browse through blob list from the container
IEnumerable<IListBlobItem> objBlobList = objContainer.ListBlobs();
foreach (IListBlobItem objItem in objBlobList)
{
Response.Write(objItem.Uri + "<br>"); 
}

在同一个 UI 中,我们提供了一个搜索对象来搜索 Blob。要搜索 Blob,首先获取对容器对象的访问权限,并使用 Blob 名称调用 GetBlobReference 函数来获取对云对象的引用。

// Get the blob reference using the blob name provided in the search
CloudBlob obj = objContainer.GetBlobReference(txtSearch.Text);
BlobStream blobstream = obj.OpenRead();

使用 Blob 流对象读取 Blob 流,最后将此流附加到 Image 对象,以便在 HTTP 响应中显示它。

// Create the image object and display the same on the browser response
System.Drawing.Image objimg=null;
objimg = System.Drawing.Image.FromStream(blobstream,true);
Response.Clear();
Response.ContentType = "image/gif";
objimg.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);

第 7 步:运行项目,享受成果

最后,享受你的第一个 Blob 程序。从下图可以看出,我们已经将一些图片文件上传到了 Blob。

我们还可以使用搜索 Blob 文本框来搜索 Blob,你应该能够从 Blob 数据库中获取以下图像显示。

如需进一步阅读,请观看以下面试准备视频和分步视频系列。

© . All rights reserved.