如何知道 AmazonS3 SDK 3.0 中是否存在存储桶

Lui*_*cho 1 c# amazon-s3

目前我正在使用 Amazon S3 for 3.5 .net 进行 CRUD 操作,我使用的是 3.1.5 版本。

我找到了这个代码来检查存储桶是否存在:

AmazonS3Client s3Client = new AmazonS3Client ();
 ///setup the client configuration

S3DirectoryInfo directoryInfo = new S3DirectoryInfo(s3Client, bucketName);
                bucketExists = directoryInfo.Exists;
Run Code Online (Sandbox Code Playgroud)

是否有另一种优雅的方式(c# 代码)来检查存储桶是否存在?

小智 5

我最初遵循这里的答案,但我改用了一种稍微不同的方法,所以我想我会分享它。如果存储桶不存在,则此方法会创建该存储桶。

internal async Task CreateBucketAsync(string bucket, CancellationToken token)
{
    if (string.IsNullOrEmpty(bucket)) return;

    using (var amazonClient = GetAmazonClient)
    {
        if (AmazonS3Util.DoesS3BucketExist(amazonClient, bucket)) return;
        await amazonClient.PutBucketAsync(new PutBucketRequest { BucketName = bucket, UseClientRegion = true }, token);
        await SetMultiPartLifetime(amazonClient, bucket, token);
    }
}
Run Code Online (Sandbox Code Playgroud)