我在.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()方法在此版本中也不可用。
任何人都请为此问题提出解决方案吗?
答案 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;