Listblobs在cloudblobdirectory类中不可用?

时间:2017-11-18 11:56:07

标签: c# azure azure-storage azure-blob-storage

我在.net core 2.0项目中安装了最新的windows azure nuget软件包。已安装版本:8.6.0.0

在8.1.4版本中,我使用以下语法使用listblobs方法获取项目列表。

CloudBlobDirectory sampleDirectory = container.GetDirectoryReference(path);
                IEnumerable<IListBlobItem> items = sampleDirectory.ListBlobs(false, BlobListingDetails.Metadata);

当尝试在.net core 2.0项目中使用与8.6.0.0 windows azure版本相同的代码块时,它会抛出错误

“cloudblobdirectory不包含listblobs的定义”。

如何获取此版本中的文件项?

同样,“CloudBlockBlob”中的UploadText()方法在此版本中也不可用。

任何人都请为此问题提出解决方案吗?

1 个答案:

答案 0 :(得分:5)

  

任何人都请为此问题提出解决方案吗?

正如Gaurav Mantri提到Net core implementation of storage client library only includes async methods. There're no sync methods available

请尝试使用以下演示代码。我也做了一个演示,它可以正常工作。

var blobs = sampleDirectory.ListBlobsSegmentedAsync(false, BlobListingDetails.Metadata, 100, null, null, null).Result;

演示代码:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("Storage connection string");

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("Container name");

// Create the container if it doesn't already exist.
container.CreateIfNotExistsAsync();
CloudBlobDirectory sampleDirectory = container.GetDirectoryReference("directory name");

var blobs = sampleDirectory.ListBlobsSegmentedAsync(false, BlobListingDetails.Metadata, 100, null, null, null).Result;

enter image description here