Ich versuche festzustellen, ob ein Ordner in meinem Amazon S3-Bucket vorhanden ist und ob er nicht erstellt werden soll.Amazon S3 Erstellen von Ordnern über .NET SDK und über die Verwaltungskonsole
Im Moment kann ich den Ordner mit dem .NET SDK erstellen, wie folgt:
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);
}
Wenn ich jetzt sehen versuchen, wenn der Ordner mit diesem Code vorhanden ist:
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;
}
}
Es kann nicht finde den Ordner. Die seltsame Sache ist, wenn ich den Ordner mit der AWS Management Console erstellen, kann die 'DoesFolderExist' Methode es sehen.
Ich bin mir nicht sicher, ob es eine ACL/IAM-Sache ist, aber ich bin mir nicht sicher, wie ich das lösen soll.
nützliche info - danke –