如何解决访问 azure blob 以代码零退出
我正在尝试遍历名为“users”的 Azure blob 容器中的 blob。我正在使用控制台应用程序。当代码到达 ListBlobsSegmentedAsync()
点时,进程以消息终止
我的代码如下:
string storageConnection = "DefaultEndpointsProtocol=https;AccountName=****;AccountKey=****;EndpointSuffix=core.windows.net";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(storageConnection);
CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("users");
BlobContinuationToken blobContinuationToken = null;
//BlobResultSegment resultSegment = await blobContainer.ListBlobsSegmentedAsync(
// prefix: null,// useFlatBlobListing: true,// blobListingDetails: BlobListingDetails.None,// maxResults: null,// currentToken: blobContinuationToken,// options: null,// operationContext: null);
var resultSegment = await blobContainer.ListBlobsSegmentedAsync(null,blobContinuationToken);
我尝试了最后一行和注释行。但同样的输出。以代码 0 退出。感谢您对此的帮助。
完整代码
-
AzureStorageAnalyser.cs 类
public class AzureStorageAnalyser { public async void GetBlobFileProperties() { try { string storageConnection = "DefaultEndpointsProtocol=https;AccountName=****;AccountKey=***;EndpointSuffix=core.windows.net"; CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(storageConnection); CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient(); CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("users"); BlobContinuationToken blobContinuationToken = null; //BlobResultSegment resultSegment = await blobContainer.ListBlobsSegmentedAsync( // prefix: null,// operationContext: null); var resultSegment = await blobContainer.ListBlobsSegmentedAsync(null,blobContinuationToken); IEnumerable<IListBlobItem> blobItems = resultSegment.Results; List<string> fileUris = new List<string>(); foreach (var blobItem in blobItems) { fileUris.Add(blobItem.StorageUri.PrimaryUri.ToString()); } } catch (Exception ex) { System.Console.WriteLine(ex.Message); } }
}
-
主方法
static void Main(string[] args) { AzureStorageAnalyser analyser = new AzureStorageAnalyser(); analyser.GetBlobFileProperties(); }
解决方法
问题确实不是等待异步操作完成。
简单的修改以下代码行即可:
analyser.GetBlobFileProperties();
到
analyser.GetBlobFileProperties().GetAwaiter().GetResult();
你不应该遇到你遇到的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。