【发布时间】:2021-10-05 09:49:45
【问题描述】:
我正在升级 Web 应用以使用 Azure SDK v 12.10
在此之前,我将虚拟路径中的所有 blob 从容器抓取到一个列表中并遍历它们。
var results = await blobContainer.
ListBlobsSegmentedAsync("publicfiles/images/" + customer.AzureFolderName, true, BlobListingDetails.All, 100, blobContinuationToken, null, null);
// Get the value of the continuation token returned by the listing call.
blobContinuationToken = results.ContinuationToken;
foreach (var item in results.Results)
{
var filename = GetFileNameFromBlobUri(item.Uri, customer.AzureFolderName);
var img = new EvaluationImage
{
ImageUrl = item.Uri.ToString(),
ImageCaption = GetCaptionFromFilename(filename),
IsPosterImage = filename.Contains("poster"),
ImagesForCompany = customer.CompanyName
};
images.Add(img);
}
我可以通过谷歌搜索如何在新 SDK 中执行此操作,得到这个
await foreach (BlobItem blob in blobContainer.GetBlobsAsync(BlobTraits.None, BlobStates.None, $"publicfiles/images/{customer.AzureFolderName}"))
问题是“blob”变量(BlobItem)具有最少的可用属性,例如,我需要以前可用的 Uri。先前版本中的“blob”变量具有许多可用属性。是否有其他类型(不是 BlobItem)具有我在搜索中找不到的这些属性?
我在 BlobTraits 或 BlobStates 中看不到任何可以改变这一点的东西。
【问题讨论】:
-
你查看
Metadata的内容了吗? -
您使用的是哪个 SDK 的确切名称和版本?我刚刚测试了 NuGet 包 Azure.Storage.Blobs(版本 12.8.0)+ .NET Core 3.1 控制台应用程序和方法 ListBlobsSegmentedAsync() 在您的代码以及 URI 属性中仍然可用。请仔细检查 NuGet 包和版本。
-
元数据和属性具有任何需要的属性。我正在使用 Azure SDK v 12.10.0 beta 2 Azure.Storage.Blobs
-
Evandro...我使用的是 .Net 6 预览版,而不是 3.1,并且 BlobClient 上没有 ListBlobsSegmentedAsync 方法,这是 v12 中使用的方法,这是 CloudBobContainer 的 v11 方法
标签: c# azure azure-blob-storage