【发布时间】:2020-12-09 23:26:16
【问题描述】:
我正在像这样创建BlobClient
private BlobClient CreateBlobClient(string container, string key) =>
new BlobContainerClient(ConnectionString, container).GetBlobClient(key);
有时,当我在此 BlobClient 上调用 ExistsAsync 而不是返回 false 时,客户端会抛出带有 e.Status == 404 的 RequestFailedException。
谁能告诉我这是为什么?
我当然不应该用一个 catch 来结束这个调用?
var client = CreateBlobClient(container, key);
try
{
// Surprisingly, ExistsAsync throws an exception if the blob is not found.
Azure.Response<bool> result = await client.ExistsAsync().ConfigureAwait(false);
return result.Value;
}
catch (RequestFailedException e) when (e.Status == 404)
{
return false;
}
附加信息:
Microsoft.Azure.WebJobs.Extensions.Storage 版本 4.0.2
这段代码的入口如下
- Blob 已上传
- 一条消息发布到 ServiceBus
- 此函数运行
然后我创建一个 BlobClient 来检查一对文件是否存在 uploaded.txt 和 uploaded.txt.sig - 这是 ExistsAsync 检查有时会引发错误代码 404 的异常,而不仅仅是返回 false。
【问题讨论】: