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项目。
- 在Visual Studio IDE中,单击“文件”>“新建”>“项目”。
- 从显示的模板列表中选择“ ASP.Net Core Web应用程序(.Net Core)”。
- 指定项目的名称。
- 单击确定保存项目。
- 在“新的.Net Core Web应用程序…”窗口中选择“ API”。
- 取消选中“启用Docker支持”复选框。
- 选择“不进行身份验证”,因为此处将不使用身份验证。
- 单击确定。
这将在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 -ProjectNameYourProjectNameHere
连接到您的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存储一起使用的更多方法。
翻译自: https://www.infoworld.com/article/3291283/how-to-use-azure-blob-storage-in-aspnet-core.html
azure blob