Исключение при получении доступа при удалении файла в Amazon S3 с использованием .Net AWSSDK - PullRequest
1 голос
/ 03 января 2012

Я пытаюсь сделать несколько простых операций ввода-вывода файлов, используя amazon S3 и C #.

До сих пор я был в состоянии создавать файлы и перечислять их.Я владелец ведра, и у меня должен быть полный доступ.В CloudBerry я могу создавать и удалять файлы в ведре.В моем коде, когда я пытаюсь удалить файл, я получаю исключение отказа в доступе.

Это мой метод тестирования:

[Test]
public void TestThatFilesCanBeCreatedAndDeleted()
{
    const string testFile = "test.txt";

    var awsS3Helper = new AwsS3Helper();

    awsS3Helper.AddFileToBucketRoot(testFile);
    var testList = awsS3Helper.ListItemsInBucketRoot();
    Assert.True(testList.ContainsKey(testFile)); // This test passes
    awsS3Helper.DeleteFileFromBucket(testFile); // Access denied exception here
    testList = awsS3Helper.ListItemsInBucketRoot();
    Assert.False(testList.ContainsKey(testFile)); 

}

Мой метод добавления файла:

var request = new PutObjectRequest();
        request.WithBucketName(bucketName);
        request.WithKey(fileName);
        request.WithContentBody("");
        S3Response response = client.PutObject(request);
        response.Dispose();

Мой метод удаления файла:

var request = new DeleteObjectRequest()
        {
            BucketName = bucketName,
            Key = fileKey
        };
        S3Response response = client.DeleteObject(request);
        response.Dispose();

После запуска кода файл виден в CloudBerry, и я могу удалить его оттуда.

У меня очень мало опыта работы сAmazon S3, поэтому я не знаю, что может пойти не так.Должен ли я устанавливать какие-либо разрешения для файлов, которые я создаю или загружаю?Почему я могу удалить файл при входе в CloudBerry с теми же учетными данными, которые указаны в моей программе?

1 Ответ

1 голос
/ 03 января 2012

Я не уверен, что является источником проблемы. Возможно, правила безопасности, но может быть что-то очень простое с вашей конфигурацией корзины. Вы можете проверить их, используя S3 Organizer Firefox plugin , используя сайт управления AWS или любой другой инструмент управления. Также я рекомендую ведение журнала запросов-ответов - это очень помогло мне в различных исследованиях. AWSSDK имеет много хороших примеров с ведением журналов - так что вам нужно только скопировать и вставить их, и все работает. Если у вас есть реальные запросы на отправку в Amazon, вы можете сравнить их с документацией . Пожалуйста, проверьте AccessKeyId для вашего deleteRequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...