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

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

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

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跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
ESG独家招商-PHH GROUP卖家交流群
加入
ESG独家招商-PHH GROUP卖家交流群
扫码进群
《TikTok综合运营手册》
《TikTok短视频运营手册》
《TikTok直播运营手册》
《TikTok全球趋势报告》
《韩国节日营销指南》
《开店大全-全球合集》
《开店大全-主流平台篇》
《开店大全-东南亚篇》
《CD平台自注册指南》
《开店大全-俄罗斯篇》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠

立即登记,定期获得更多资讯

订阅
联系顾问

平台顾问

平台顾问 平台顾问

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

icon icon

小程序

微信小程序

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

icon icon

返回顶部