Загрузить файл в корзину S3 - vue-upload-component - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь загрузить файл в корзину AWS S3, используя vue-upload-component . У меня есть настроенный веб-интерфейс, который возвращает предварительно подписанный URL с соответствующими деталями. Мне трудно настроить это на работу. В документации сказано, что URL должен быть указан как props для компонента загрузки файла, например:

:put-action="signedUrl" //local variable which is set to the url returned from the url

Я запускаю вызов web api, как только файл проходит критерии фильтрации inputFilter, которые вмой случай просто проверяет наличие текстового файла. Я могу получить правильный подписанный URL-адрес, который работает, даже когда я ставлю URL-адрес в качестве значения для put-action реквизитов, например, так -

put-action="https://s3.amazonaws.com/...."

Однако, при попытке установить его динамически, начальная загрузкастатус говорит - Действие не настроено , что странно, так как я уверен, что переменная устанавливается после того, как обещание возвращается из API.

Итак, кажется, что компонент не принимаетновое значение

Я попытался установить реквизиты после того, как обещание было возвращено, как было предложено здесь , и даже попытался повторно обработать компонент загрузки после того, как обещание было возвращено, как предложено здесь , ноТем не менее, я получаю то же сообщение.

Что может быть не так с моим подходом.

1 Ответ

0 голосов
/ 17 октября 2019

Удалось заставить это работать, установив свойство уровня файла putAction, как показано ниже -

methods: {    
inputFilter(newFile, oldFile, prevent) {
  if (newFile && !oldFile) {                
    if (doesNotPassTheFilter) {
      return prevent();
    }
    else {
      return this.$store.dispatch('getSignedUrl').then((url) => {            
        newFile.putAction = url;
      });
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...