Estoy tratando de determinar si existe una carpeta en mi Amazon S3 Bucket y, en caso de que no quiera, quiero crearla.Amazon S3 Creación de carpetas a través de SDK .NET a través de Management Console
En el momento en que puedo crear la carpeta utilizando el SDK .NET de la siguiente manera:
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);
}
Ahora cuando intento para ver si existe la carpeta que utiliza este código:
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;
}
}
No puede encuentra la carpeta. Lo extraño es que si creo la carpeta usando AWS Management Console, el método 'DoesFolderExist' puede verla.
No estoy seguro de si es una cuestión de ACL/IAM, pero no estoy seguro de cómo resolver esto.
información útil - gracias –