【发布时间】:2018-06-10 21:22:31
【问题描述】:
我正在尝试为容器中的所有 blob 创建一个函数。我接受了帮助
How to get hold of all the blobs in a Blob container which has sub directories levels(n levels)?,它似乎使用了一个不再存在的重载。我在附加字段 prefix 和 operationContext 中添加了默认值:
static internal async Task<List<string>> ListBlobNames(string ContainerName)
{
BlobContinuationToken continuationToken = null;
bool useFlatBlobListing = true;
BlobListingDetails blobListingDetails = BlobListingDetails.None;
var blobOptions = new BlobRequestOptions();
CloudBlobContainer container = Container(ContainerName);
var operationContext = new OperationContext();
var verify = container.GetBlobReference("A_Valid_Name.jpg");
var verify2 = container.GetBlobReference("NotAName.jpg");
using (var a = await verify.OpenReadAsync()) ;
//using (var a = await verify2.OpenReadAsync()); // doesn't work since it doesn't exist
return (await container.ListBlobsSegmentedAsync("", useFlatBlobListing, blobListingDetails, null, continuationToken, blobOptions, operationContext))
.Results.Select(s => s.Uri.LocalPath.ToString()).ToList();
}
最后一行给了我一个例外:
StorageException:请求的 URI 不代表服务器上的任何资源。
然后我创建了verfiy 和verify2 变量来测试我的容器是否有效。 verify 引用了一个有效的 blob,verify2 引用了一个无效的 blob 名称。使用未注释的第二个 using 语句运行代码在第二个 using 语句中给我一个错误。这表明verify 有效,因此容器有效。
【问题讨论】:
-
那么...您确定您正确复制了代码吗?您的注释行 not 引用
verify2- 它引用refer2(未定义的变量)。 -
谢谢。为了清楚起见,我更改了变量名称。我忘了重命名时代码被注释了
-
有人能解释一下否决票吗?有什么要补充的吗?
标签: asp.net-core azure-storage azure-blob-storage