Azure Storage 系列(三)Blob 参数设置说明,azure ad介绍-ESG跨境

Azure Storage 系列(三)Blob 参数设置说明,azure ad介绍

来源网络
来源网络
2022-07-05
点赞icon 0
查看icon 515

Azure Storage 系列(三)Blob 参数设置说明,azure ad介绍Azure Storage 系列(三)Blob 参数设置说明一,引言上一篇将Azure Blob存储的时候,有使用到一个.NET Core Web项目,通过代码的方式进行操作Azure Blob的数据,接着上一篇的内容,今天继续看一下代码......

Azure Storage 系列(三)Blob 参数设置说明,azure ad介绍





Azure Storage 系列(三)Blob 参数设置说明

一,引言

上一篇将Azure Blob存储的时候,有使用到一个.NET Core Web项目,通过代码的方式进行操作Azure Blob的数据,接着上一篇的内容,今天继续看一下代码,具体看看Azure.Storage中的类,方法。

我是分割线

Azure Blob Storage存储系列:

1,Azure Storage系列(一)入门简介

2,Azure Storage系列(二).NET Core Web项目中操作Blob存储

3,Azure Storage系列(三)Blob参数设置说明

4,Azure Storage系列(四)在.Net上使用Table Storage

二,正文

1,配置Blob连接字符串

{

Logging: {

  LogLevel: {

   Default: Information,

   Microsoft: Warning,

   Microsoft.Hosting.Lifetime: Information

  }

},

AllowedHosts: *,

AzureBlobStorageConnectionString: DefaultEndpointsProtocol=https;AccountName=cnbateblogaccount;AccountKey=FU01h022mn1JjONp+ta0DAXOO7ThK3diY891n9nycsTLGZF83nJpGVCVFhGOfV0wndOOQ==;EndpointSuffix=core.windows.net

}

”AzureBlobStorageConnectionString“向此Azure存储帐户提出请求时,使用访问密钥对应用程序进行身份验证。请采用安全的方式(例如使用Azure Key Vault)保存访问密钥,不要共享密钥。建议定期重新生成访问密钥。

Azure会向我们提供两个访问密钥,这样,当重新生成其中一个时,可以使用另一个保持连接。

2,注入BlobServiceClient,BlobService

services.AddSingleton(x=newBlobServiceClient(Configuration.GetValuestring(AzureBlobStorageConnectionString)));

初始化创建一个BlobService类,并且在将appsettings中的key叫”AzureBlobStorageConnection“的链接字符串的值当作参数放到构造函数中

BlobService

services.AddSingletonIBlobSergvice,BlobService();

3,BlobService方法

3.1,获取Blog信息

#region 01,获取Blob,根据blob名称+async TaskBlobInfo GetBlobAsync(string name)

/// summary

/// 获取Blob,根据blob名称

/// /summary

/// param name=nameblob名称/param

/// returns/returns

public async TaskAzure.Storage.Models.BlobInfo GetBlobAsync(string name)

{

var containerClient = blobServiceClient.GetBlobContainerClient(picturecontainer);

var blobClient = containerClient.GetBlobClient(name);

var blobDownLoadInfo = await blobClient.DownloadAsync();

return new Azure.Storage.Models.BlobInfo(blobDownLoadInfo.Value.Content, blobDownLoadInfo.Value.ContentType);

}

#endregion

获取Blob存储信息具体实现方法,

1,首先我们可以看到先通过picturecontainer名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient

2,其次,通过异步的方法“DownloadAsync”进行下载Blob对象,其中包括Blob元数据,属性等信息

3,最后,我们将返回创建BlobInfo对象,在其构造函数中传入返回值的Content和ContentType

3.2,获取Blog信息

#region 02,获取所有Blob名称+async TaskIEnumerablestring ListBlobsNameAsync()

/// summary

/// 获取所有Blob名称

/// /summary

/// returns/returns

public async TaskIEnumerablestring ListBlobsNameAsync()

{

  var containerClient = blobServiceClient.GetBlobContainerClient(picturecontainer);

  var items = new Liststring();

  await foreach (var blobItem in containerClient.GetBlobsAsync())

  {

    items.Add(blobItem.Name);

  }

  return items;

}

#endregion

获取Blob存储信息具体实现方法,

1,首先我们可以看到先通过picturecontainer名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient

2,其次,通过异步foreach调用ContainerClient的GetBlobsAsync“的方法,当前方法有多个默认参数

BlobTraits(Blob特性):默认获取包含所有特性的标识

BlobStates(Blob状态):指定应包含所有状态的Blob的标志

prefix(前缀):指定一个字符串,该字符串对结果进行过滤以仅返回其名称以指定的开头的Blob前缀

cancellationToken:传播有关应取消操作的通知

3,最后,将每一项的Blob的名称添加到集合中。

3.3,根据文件路径和文件名称上传文件

#region 03,上传文件,根据文件路径和文件名称+async Task UploadFileBlobAsync(string filePath, string filename)

/// summary

/// 上传文件,根据文件路径和文件名称

/// /summary

/// param name=filePath文件路径/param

/// param name=filename文件名称/param

/// returns/returns

public async Task UploadFileBlobAsync(string filePath, string filename)

{

  var containerClient = blobServiceClient.GetBlobContainerClient(picturecontainer);

  var blobClient = containerClient.GetBlobClient(filename);

  await blobClient.UploadAsync(filePath, new BlobHttpHeaders { ContentType = filePath.GetContentType() });

}

#endregion

上传Blob数据具体实现方法

1,首先我们可以看到先通过picturecontainer名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient

2,最后通过异步上传文件,此时需要指定文件的路径,以及在BlobHttpHeaders中指定文件内容的ContentType

3.4,上传流

#region 04,上传文件流,根据文件内容和文件名称+async Task UploadContentBlobAsync(string content, string filename)

/// summary

/// 上传文件流,根据文件内容和文件名称

/// /summary

/// param name=content文件内容/param

/// param name=filename文件名称/param

/// returns/returns

public async Task UploadContentBlobAsync(string content, string filename)

{

var containerClient = blobServiceClient.GetBlobContainerClient(picturecontainer);

var blobClient = containerClient.GetBlobClient(filename);

var bytes = Encoding.UTF8.GetBytes(content);

await using var memoryStream = new MemoryStream(bytes);

await blobClient.UploadAsync(memoryStream, new BlobHttpHeaders() { ContentType = filename.GetContentType() });

}

#endregion

上传Blob数据具体实现方法

1,首先我们可以看到先通过picturecontainer名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient

2,其次,将上传的字符串转化成字节流

3,最后通过异步字节流上传,以及在BlobHttpHeaders中指定文件内容的ContentType

3.5删除Blob数据

#region 05,删除Blob+async Task DeleteBlobAsync(string blobName)

/// summary

/// 删除Blob

/// /summary

/// param name=blobNameblob名称/param

/// returns/returns

public async Task DeleteBlobAsync(string blobName)

{

  var containerClient = blobServiceClient.GetBlobContainerClient(picturecontainer);

  var blobClient = containerClient.GetBlobClient(blobName);

  await blobClient.DeleteIfExistsAsync();

}

#endregion

删除blob具体实现方法

1,首先我们可以看到先通过picturecontainer名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient

2,最后调用异步”DeleteIfExistsAsync“方法,将blob进行删除

ok,具体针对于Blob的增删查的方法就介绍完成

三,结尾

今天内容较少,只是把上一篇关于Blob操作的一些方法贴了出来,讲了一下对于Blob的操作,大家也可以通过微软官方文档:Azure Storage Blobs。下一篇将开始新的介绍Storage的新内容Azure Table Storage

github:https://github.com/yunqian44/Azure.Storage.git

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

作者:Allen版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。


文章推荐
Azure 数据库的 Flexible Server,azure数据库
Google AdWords如何推,谷歌adwords教程
采购日本二手挖掘机如何运输清关至中国口岸,香港二手挖掘机报关流程
AppStore上架小技能,appstore上架全流程


特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。

搜索 放大镜
韩国平台交流群
加入
韩国平台交流群
扫码进群
欧洲多平台交流群
加入
欧洲多平台交流群
扫码进群
美国卖家交流群
加入
美国卖家交流群
扫码进群
ESG跨境专属福利分享群
加入
ESG跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
《开店大全-全球合集》
《开店大全-主流平台篇》
《开店大全-东南亚篇》
《CD平台自注册指南》
《开店大全-俄罗斯篇》
《韩国站内推广指南》
《韩国热销品预测》
《开店大全-日韩篇》
《开店大全-拉美篇》
《开店大全-欧洲篇》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠
联系顾问

平台顾问

平台顾问 平台顾问

微信扫一扫
马上联系在线顾问

icon icon

小程序

微信小程序

ESG跨境小程序
手机入驻更便捷

icon icon

返回顶部

Baidu
map