Tôi đang cố gắng xác định xem một thư mục có tồn tại trên Amazon S3 Bucket của tôi không và nếu tôi không muốn tạo nó.Amazon S3 Tạo thư mục thông qua .NET SDK và thông qua Management Console
Tại thời điểm này tôi có thể tạo thư mục bằng cách sử dụng .NET SDK như sau:
public void CreateFolder(string bucketName, string folderName)
{
var folderKey = folderName + "/"; //end the folder name with "/"
var request = new PutObjectRequest();
request.WithBucketName(bucketName);
request.StorageClass = S3StorageClass.Standard;
request.ServerSideEncryptionMethod = ServerSideEncryptionMethod.None;
//request.CannedACL = S3CannedACL.BucketOwnerFullControl;
request.WithKey(folderKey);
request.WithContentBody(string.Empty);
S3Response response = m_S3Client.PutObject(request);
}
Bây giờ khi tôi cố gắng để xem nếu thư mục tồn tại sử dụng mã này:
public bool DoesFolderExist(string key, string bucketName)
{
try
{
S3Response response = m_S3Client.GetObjectMetadata(new GetObjectMetadataRequest()
.WithBucketName(bucketName)
.WithKey(key));
return true;
}
catch (Amazon.S3.AmazonS3Exception ex)
{
if (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
return false;
//status wasn't not found, so throw the exception
throw;
}
}
Nó không thể tìm thư mục. Điều kỳ lạ là nếu tôi tạo thư mục bằng AWS Management Console, phương thức 'DoesFolderExist' có thể thấy nó.
Tôi không chắc đó có phải là điều ACL/IAM hay không nhưng tôi không chắc chắn cách giải quyết vấn đề này.
thông tin hữu ích - cảm ơn –