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

Azure 存储:面向开发者的 Azure Blob 存储

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.89/5 (4投票s)

2018年9月3日

CPOL

3分钟阅读

viewsIcon

23332

本文简要介绍了 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 存储。

© . All rights reserved.