时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Allen网络
小提示:您能找到这篇{Azure Storage 系列(三)Blob 参数设置说明}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure Storage 系列(三)Blob 参数设置说明内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< font-size: 16px;">一,引言 < font-size: 16px;">上一篇将Azure Blob存储的时候,有使用到一个.NET Core Web项目,通过代码的方式进行操作Azure Blob的数据,接着上一篇的内容,今天继续看一下代码,具体看看Azure.Storage中的类,方法。 < font-size: 16px;">--------------------我是分割线-------------------- < font-size: 16px;">Azure Blob Storage存储系列: < font-size: 16px;">1,Azure Storage系列(一)入门简介 < font-size: 16px;">2,Azure Storage系列(二).NET Core Web项目中操作Blob存储 < font-size: 16px;">3,Azure Storage系列(三)Blob参数设置说明 < font-size: 16px;">4,Azure Storage系列(四)在.Net上使用Table Storage < font-size: 16px;">二,正文 < font-size: 16px;">1,配置Blob连接字符串 < font-size: 16px;"> { "Logging": { "LogLevel": { "Default": "Information", ": "Warning", .Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "AzureBlobStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=cnbateblogaccount;AccountKey=FU01h022mn1JjONp+ta0DAXOO7ThK3diY891n9nycsTLGZF83nJpGVCVFhGOfV0wndOOQ==;EndpointSuffix=core.windows.net" } < ">”AzureBlobStorageConnectionString“向此Azure存储帐户提出请求时,使用访问密钥对应用程序进行身份验证。请采用安全的方式(例如使用Azure Key Vault)保存访问密钥,不要共享密钥。建议定期重新生成访问密钥。 < font-size: 16px;">Azure会向我们提供两个访问密钥,这样,当重新生成其中一个时,可以使用另一个保持连接。 < font-size: 16px;"> < font-size: 16px;">2,注入BlobServiceClient,BlobService < font-size: 16px;"> services.AddSingleton(x => new BlobServiceClient(Configuration.GetValue<string>("AzureBlobStorageConnectionString"))); < "> < ">初始化创建一个BlobService类,并且在将appsettings中的key叫”AzureBlobStorageConnection“的链接字符串的值当作参数放到构造函数中 < font-size: 16px;">BlobService < font-size: 16px;"> services.AddSingleton<IBlobSergvice, BlobService>(); < ">3,BlobService方法 < font-size: 16px;">3.1,获取Blog信息 < font-size: 16px;"> #region 01,获取Blob,根据blob名称+async Task<BlobInfo> GetBlobAsync(string name) /// <summary> /// 获取Blob,根据blob名称 /// </summary> /// <param name="name">blob名称</param> /// <returns></returns> public async Task<Azure.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 < font-size: 16px;">获取Blob存储信息具体实现方法, < font-size: 16px;">1,首先我们可以看到先通过"picturecontainer"名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient < font-size: 16px;">2,其次,通过异步的方法“DownloadAsync”进行下载Blob对象,其中包括Blob元数据,属性等信息 < font-size: 16px;"> < font-size: 16px;">3,最后,我们将返回创建BlobInfo对象,在其构造函数中传入返回值的Content和ContentType < font-size: 16px;">3.2,获取Blog信息 < font-size: 16px;"> #region 02,获取所有Blob名称+async Task<IEnumerable<string>> ListBlobsNameAsync() /// <summary> /// 获取所有Blob名称 /// </summary> /// <returns></returns> public async Task<IEnumerable<string>> ListBlobsNameAsync() { var containerClient = _blobServiceClient.GetBlobContainerClient("picturecontainer"); var items = new List<string>(); await foreach (var blobItem in containerClient.GetBlobsAsync()) { items.Add(blobItem.Name); } return items; } #endregion < ">获取Blob存储信息具体实现方法, < font-size: 16px;">1,首先我们可以看到先通过"picturecontainer"名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient < font-size: 16px;">2,其次,通过异步foreach调用ContainerClient的GetBlobsAsync“的方法,当前方法有多个默认参数 < font-size: 16px;">BlobTraits(Blob特性):默认获取包含所有特性的标识 < font-size: 16px;">BlobStates(Blob状态):指定应包含所有状态的Blob的标志 < font-size: 16px;">prefix(前缀):指定一个字符串,该字符串对结果进行过滤以仅返回其名称以指定的开头的Blob前缀 < font-size: 16px;">cancellationToken:传播有关应取消操作的通知 < font-size: 16px;"> < font-size: 16px;">3,最后,将每一项的Blob的名称添加到集合中。 < font-size: 16px;">3.3,根据文件路径和文件名称上传文件 < font-size: 16px;"> #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) { &nb公关危机的宣传材料sp; var containerClient = _blobServiceClient.GetBlobContainerClient("picturecontainer"); var blobClient = containerClient.GetBlobClient(filename); await blobClient.UploadAsync(filePath, new BlobHttpHeaders { ContentType = filePath.GetContentType() }); } #endregion < ">上传Blob数据具体实现方法 < font-size: 16px;">1,首先我们可以看到先通过"picturecontainer"名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient < font-size: 16px;">2,最后通过异步上传文件,此时需要指定文件的路径,以及在BlobHttpHeaders中指定文件内容的ContentType < font-size: 16px;">3.4,上传流 < font-size: 16px;"> #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数据具体实现方法 < font-size: 16px;">1,首先我们可以看到先通过"picturecontainer"名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient < font-size: 16px;">2,其次,将上传的字符串转化成字节流 < font-size: 16px;">3,最后通过异步字节流上传,以及在BlobHttpHeaders中指定文件内容的ContentType < font-size: 16px;">3.5删除Blob数据 < font-size: 16px;"> #region 05,删除Blob+async Task DeleteBlobAsync(string blobName) /// <summary> /// 删除Blob /// </summary> /// <param name="blobName">blob名称</param> /// <returns></returns> public async Task DeleteBlobAsync(string blobName) { var containerClient = _blobServiceClient.GetBlobContainerClient("picturecontainer"); var blobClient = containerClient.GetBlobClient(blobName); await blobClient.DeleteIfExistsAsync(); } #endregion < ">删除blob具体实现方法 < font-size: 16px;">1,首先我们可以看到先通过"picturecontainer"名称获取到ContainerClient,再通过需要的Blob名称获取到BlobClient < font-size: 16px;">2,最后调用异步”DeleteIfExistsAsync“方法,将blob进行删除 < font-size: 16px;"> < font-size: 16px;">ok,具体针对于Blob的增删查的方法就介绍完成 < font-size: 16px;">三,结尾 < font-size: 16px;">今天内容较少,只是把上一篇关于Blob操作的一些方法贴了出来,讲了一下对于Blob的操作,大家也可以通过微软官方文档:Azure Storage Blobs。下一篇将开始新的介绍Storage的新内容-----Azure Table Storage < font-size: 16px;">github:https://github.com/yunqian44/Azure.Storage.git < font-size: 16px;">作者:Allen < font-size: 16px;">版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。 < font-size: 16px;">作者:Allen版权:转载请在文章明显位置注明作者及出处。网络舆情监测与预警如发现错误,欢迎批评指正。 |
上一篇:节假日旺季,Facebook广告如何部署?
下一篇:玩转Facebook Live,你才是幕前玩家
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“Azure Storage 系列(三)Blob 参数设置说明”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure Storage 系列(三)Blob 参数设置说明的相关事宜。
关键词:Azure,Storage,系列(三)Bl