微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问 azure blob 以代码零退出

如何解决访问 azure blob 以代码零退出

我正在尝试遍历名为“users”的 Azure blob 容器中的 blob。我正在使用控制台应用程序。当代码到达 ListBlobsSegmentedAsync() 点时,进程以消息终止

代码 0 退出

我的代码如下:

                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 退出。感谢您对此的帮助。

完整代码

  1. 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);
         }
     }
    

    }

  2. 方法

     static void Main(string[] args)
     {   
         AzureStorageAnalyser analyser = new AzureStorageAnalyser();
         analyser.GetBlobFileProperties();
     }
    

解决方法

问题确实不是等待异步操作完成。

简单的修改以下代码行即可:

analyser.GetBlobFileProperties();

analyser.GetBlobFileProperties().GetAwaiter().GetResult();

你不应该遇到你遇到的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。