Загрузка файла Amazon S3: подбрасывание 403 - PullRequest
1 голос
/ 11 марта 2019

Я пытался реализовать функцию загрузки нескольких файлов, в которой я использую AjaxFileUpload для достижения этой цели.

Вот пример использования моего требования:

  1. Hitserver-A для получения предварительно назначенного URL-адреса, который действителен в течение 15 минут.
  2. Предварительно назначенный URL-адрес - это, в основном, путь, по которому я пытаюсь загрузить многокомпонентный файл.Этот путь относится к серверу Amazon S3.

Проблема в том, что я получаю 403 здесь, на втором шаге.

Я проверил звонки со своей стороны, ониидут нормально, и, согласно бэкэнду, они также должны работать хорошо.

Вот мой блок кода загрузки файла:

$.ajaxFileUpload({
    url : data.preSignedUploadUrl,
    secureuri : true,
    fileElementId : 'uploadFile',
    dataType : 'json',
    contentType: "application/xml",
    success : function(data, status) {
        if(data.successful == true){
            self.sendUploadAcknowledgement(fileName);
        }else{
            $('#errorMessage').html(data.errors[0].description);
        }
    },
    error: function(err){
        console.error("Error in uploading file to S3!");
        console.log(err);
    }
});

Обратите внимание, что вызовы API хорошо авторизованы.и упакованы в соответствующие им кластеры аутентификации.

На основе различных решений, найденных в Интернете, я понял, что мне нужно изменить свой тип контента в запросе.Я попытался поместить "application / xml", "application / json" в ключ contentType, даже попытался полностью его опустить.

Я хочу знать, что я делаю не так здесь, на веб-интерфейсе, или это просто ошибкабэкэнд?

1 Ответ

0 голосов
/ 01 апреля 2019

ОБНОВЛЕНИЕ: Ну, проблема была в бэкэнде.Бэкэнд парень испортил разрешения.Теперь, когда он исправил свою часть, все работает, как ожидалось.Короче говоря, чтобы ответить на мой вопрос, это не было какой-либо ошибкой в ​​части внешнего интерфейса, а только в том, что у этого компонента были проблемы.

...