Как принудительно загрузить сгенерированный файл aws (publi c) в javascript - PullRequest
1 голос
/ 18 июня 2020

Я ищу лучший способ принудительно загрузить сгенерированное видео (~ 50 МБ) со стороны клиента с javascript и без доступа к серверу. Я знаю этот аналогичный вопрос (какое решение в моем случае не работает из-за политики cors). Итак, мой вопрос относится к aws s3. Есть ли простой способ (возможно, используя sdk aws с веб-браузерами ) для принудительной загрузки?

Или было бы проще использовать объект-буфер из видеоплеера Plyr (да, есть также проигрыватель, который воспроизводит это видео), чтобы сделать из него загружаемый mp4?

соответственно такое решение?

var req = new XMLHttpRequest();
var videourl = "https://shotstack-api-stage-output.s3-ap-southeast-2.amazonaws.com/t63shcspnh/c7a6163b-686a-4cf0-837f-94a922a10a6c.mp4"
req.open('GET', videourl, true);
req.responseType = 'blob';

req.onload = function() {
   // Onload is triggered even on 404
   // so we need to check the status code
   if (this.status === 200) {
      var videoBlob = this.response;
      var vid = URL.createObjectURL(videoBlob); // IE10+
      // Video is now downloaded
      // and now save it
      const a = document.createElement('a');
      a.href = vid;
      a.download = filename;
      document.body.appendChild(a);
      a.click();
   }
}
req.onerror = function() {
   // Error
}

req.send();
...