如何在ASP.Net Core中使用Azure Blob存储

利用ASP.Net Core中的Microsoft Azure云资源很容易,ASP.Net Core是Microsoft的跨平台,精益和模块化框架,用于构建高性能Web应用程序。 例如,您可以使用Azure存储帐户来存储或检索数据。 这样的数据可能包括文件,blob,队列或表。 在本文中,我们将研究如何从ASP.Net Core应用程序将数据上传到Azure Blob存储。

在Visual Studio中创建一个ASP.Net Core Web API项目

假设您正在运行Visual Studio 2017,则可以按照以下概述的步骤在Visual Studio 2017中创建ASP.Net Web API项目。

  1. 在Visual Studio IDE中,单击“文件”>“新建”>“项目”。
  2. 从显示的模板列表中选择“ ASP.Net Core Web应用程序(.Net Core)”。
  3. 指定项目的名称。
  4. 单击确定保存项目。
  5. 在“新的.Net Core Web应用程序…”窗口中选择“ API”。
  6. 取消选中“启用Docker支持”复选框。
  7. 选择“不进行身份验证”,因为此处将不使用身份验证。
  8. 单击确定。

这将在Visual Studio 2017中创建一个新的ASP.Net Core 2.1项目。

作为前提条件,您应该具有一个Azure存储帐户。 若要了解如何创建Azure存储帐户,可以参考本文

在ASP.Net Core中实现UploadDataController服务

在本节中,我们将探索如何实现简单的ASP.Net Core控制器以将数据上传到Azure Blob存储。 要创建控制器,请在“解决方案资源管理器”窗口中的Controllers文件夹上单击鼠标右键,选择“添加”>“控制器”,选择“ API控制器–空”,然后单击“添加”。 接下来,将控制器命名为“ UploadDataController”,然后再次单击“添加”。

现在,通过NuGet软件包管理器添加WindowsAzure.Storage软件包。 或者,您可以使用NuGet软件包管理器控制台通过以下命令安装软件包:

Install-Package WindowsAzure.Storage -ProjectName YourProjectNameHere

连接到您的Azure Blob存储容器

假设您已经在项目中成功安装了WindowsAzure.Storage软件包,现在就可以开始编写代码了。 您将需要Azure存储帐户中的连接字符串。 然后,您将需要创建对Azure Blob客户端的引用,如下面给出的代码片段所示。 Azure Blob客户端(以下称为CloudBobClient)是指Azure存储帐户中的Blob存储。

string connectionString ="Specify the connection string to connect to the Azure blob storage here.";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();

一旦拥有对CloudBlobClient实例的引用,就可以创建CloudBlobContainer的实例,该实例是Azure Blob存储中的实际容器对象。 请注意,容器的名称作为参数传递给CloudBlobClient实例的GetContainerReference方法。

CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference(containerName);

接下来,您可以使用以下代码检索对该块的引用。 块Blob(Azure Blob存储中的三种Blob之一)使上传大Blob(高达4.75TB)变得容易。

CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(filename);

ASP.Net Core中完整的UploadData控制器方法

最后,这是名为UploadData的控制器方法的完整源代码。

public async Task<bool> UploadData(Stream stream, string filename)
        {
            try
            {
                string connectionString ="Specify the connection string to connect to the Azure blob storage here.";
                string containerName ="Specify the container name here.";
                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
                CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference(containerName);
                CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(filename);
                await cloudBlockBlob.UploadFromStreamAsync(stream);
                stream.Dispose();
                return true;
            }
            catch
            {
                return false;
            }
        }

您可以利用Azure Blob存储在Azure中存储大量非结构化数据-文档,图像,音频和视频文件,日志文件,备份等。 您可以从任何地方访问此数据,并利用基于角色的访问控制和加密来保护数据。

在本文中,我们研究了如何使用RESTful ASP.Net Core服务将数据上传到Azure Blob存储。 我将在以后的文章中讨论与Azure Blob存储一起使用的更多方法。

From: https://www.infoworld.com/article/3291283/how-to-use-azure-blob-storage-in-aspnet-core.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值