Azure 存储:面向开发者的 Azure Blob 存储
本文简要介绍了 Azure Blob 存储以及如何在 10 个步骤内使用它。
什么是 Azure 存储?
Azure 存储是 Azure 提供的一项云存储服务,它提供二进制、文本、结构化和非结构化数据、消息等的存储,这些数据通过 REST API 公开,因此您可以随时随地访问。
Azure 存储的抽象或类型/选项
- Blob
- 队列
- 表格
- 文件存储
Blob - 非结构化数据,例如图像、文档、音频文件、视频文件等。
队列 - 用于发送和接收消息,就像发布者和订阅者一样
表 - 无模式且无关系,但结构化数据(非 SQL 数据库存储)以表的形式存储
文件存储 - 将存储网络驱动器从 Azure 映射到 Azure 中创建的 VM,类似于我们的共享网络驱动器
让我们在本文中讨论 Azure Blob 存储
什么是 Azure Blob 存储?
Blob 存储是一种服务(属于 Azure 存储),它将非结构化数据作为对象存储在云中,并将其直接提供给浏览器。
Blob 存储的常见用途包括
- 存储数据以进行分析
- 执行安全备份
- 流式传输视频和音频
- 存储文件以进行分布式访问
不同类型的 Blob
页 Blob - 通常用于存储 VHD 文件,其限制最高为 1TB
块 Blob - 通常用于存储文本和二进制数据文件,其限制最高为 200GB
如何创建 Blob 存储?
步骤 1
转到您的 Azure 门户并创建一个存储帐户。
名称:您的存储帐户的名称(名称应唯一且为小写字符)
部署模型:资源管理器 - 新门户,经典 - 旧门户
帐户类型:通用(包括表、Blob、队列和文件存储)或仅用于存储 Blob 的 Blob 存储。
注意:只需将鼠标悬停在小图标“i
”上,您就会知道有哪些类别。
创建存储帐户后,它将如下所示
第二步
现在单击 Blob,然后单击添加容器,给出容器的名称和访问级别,然后单击创建。 创建后,它将如下所示
步骤 3
现在单击存储帐户并转到其下的设置,然后单击密钥。 您可以看到 2 个密钥及其各自的连接字符串,复制其中一个。 我们将在代码中使用它们。
现在让我们进行编码部分,并从我们的代码中存储一个 blob,检索它并检查它的 URI。 所以开始和我一起创建它。
步骤 4
转到 Visual Studio 并创建一个空的控制台应用程序。
转到App.config并在<appSettings>
下添加此代码。
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;
AccountName=commonfilestorage;
AccountKey=T1y7Rb1R/QJ/3NE6oSO94wRkQZcJjl8LP5UgoYuJwBJzMbN1EOZfuptwyD3L2CBe2rqi/IyjBYxxAqc/XOsy4w==;
EndpointSuffix=core.windows.net" />
注意:这里给出的连接字符串是我创建存储帐户时生成的,所以请使用您的连接字符串,此存储帐户将在您阅读本文时被删除并且不再可用。
步骤 5
右键单击项目并单击“管理 NuGet 包”,然后浏览WindowsAzure.Storage
并将其添加到项目中。
步骤 6
打开Program.cs并在开头添加这些命名空间
using Microsoft.WindowsAzure; // Namespace for CloudConfigurationManager
using Microsoft.WindowsAzure.Storage; // Namespace for CloudStorageAccount
using Microsoft.WindowsAzure.Storage.Blob; // Namespace for Blob storage types
using Microsoft.Azure;
步骤 7
现在让我们编写一些代码,将 blob 添加到我们的容器。
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("doccontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
container.SetPermissions(new BlobContainerPermissions
{ PublicAccess = BlobContainerPublicAccessType.Blob });
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob.doc");
//Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead
(@"C:\Users\sanath.js\Documents\Abhinandana S_Resume.docx"))
{
Console.WriteLine
("******************************* Uploading Blob **********************************************");
blockBlob.UploadFromStream(fileStream);
Console.WriteLine
("******************************* Successfully Uploaded Blob
**********************************************");
Console.ReadLine();
}
注意:在此行中替换您要上传的 blob。
using (var fileStream = System.IO.File.OpenRead
(@"C:\Users\sanath.js\Documents\Abhinandana S_Resume.docx"))
就是这样! 运行应用程序,现在您将能够将 blob 上传到云端,也可以尝试使用一些图像、txt 文件。 现在转到 Azure 门户中的容器,您将能够在其中看到您的 blob。
步骤 8
要从容器下载 blob,请添加以下代码
// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"C:\Users\sanath.js\Desktop\check.docx"))
{
Console.WriteLine("******************************* Downloading Blob
**********************************************");
blockBlob.DownloadToStream(fileStream);
Console.WriteLine("******************************* Downloaded Blob
**********************************************");
Console.ReadLine();
}
当您运行该应用程序时,您将能够在桌面上看到一个check.docx文件,该文件是我们之前上传的 blob。
步骤 9
要查看 Blob 的 URI,请使用以下代码
//list blobs in container
foreach (IListBlobItem blob in container.ListBlobs())
{
if (blob.GetType() == typeof(CloudBlockBlob))
Console.WriteLine(blob.Uri);
Console.ReadLine();
}
当您复制链接并从浏览器点击该链接时,您可以在 URI 中清楚地看到我们的存储帐户和容器名称,您的 blob 将被下载。
就是这样! 现在您已经熟悉了如何开始使用 Azure blob 存储。