Создание папки в Amazon S3 с помощью .NET SDK и консоли управления

Я пытаюсь определить, существует ли папка в моей корзине Amazon S3, и если нет, я хочу ее создать. .

На данный момент я могу создать папку с помощью .NET SDK следующим образом:

        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);

    }

Теперь, когда я пытаюсь проверить, существует ли папка, используя этот код:

        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;
        }
    }

Не удается найти папку. Странно то, что если я создам папку с помощью Консоли управления AWS, метод «DoesFolderExist» сможет ее увидеть.

Я не уверен, связано ли это с ACL/IAM, но не уверен, как это решить.

8
задан Webcognoscere 30 March 2012 в 14:13
поделиться