毫无例外地从 Amazon S3 获取对象

问题描述 投票:0回答:1

我正在使用适用于 .NET Core 的 C# SDK 通过

GetObjectAsync
从存储中获取对象。但是,可能不存在程序请求的此类对象。在这种情况下,
GetObjectAsync
会抛出
AmazonS3Exception
,ErrorCode == "NoSuchKey"。 但这会减慢程序速度,因为当对象不存在时这是正常的。

我可以强制 SDK 不抛出异常,而是让我检查响应并确定是否找到对象吗?

c# amazon-s3 amazons3client
1个回答
0
投票

SDK 在这里抛出异常通常是预期的工作方式...这是他们声明响应有失败代码的方式。我的建议是将 GetObjectAsync 放入 try/catch 块中,该块捕获任何 AmazonS3Exception 并以您想要的任何方式优雅地处理它。捕获的异常应该包含您想要检查的响应的所有详细信息。

var bar;

try
{
    bar = store.GetObjectAsync(foo, foobar, cancellationToken);
}
catch(AmazonS3Exception ex)
{
    //handle the exception here
}
© www.soinside.com 2019 - 2024. All rights reserved.