Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中强制下载aws生成的文件(公共文件)_Javascript_Amazon Web Services_Amazon S3_Blob_Force Download - Fatal编程技术网

如何在javascript中强制下载aws生成的文件(公共文件)

如何在javascript中强制下载aws生成的文件(公共文件),javascript,amazon-web-services,amazon-s3,blob,force-download,Javascript,Amazon Web Services,Amazon S3,Blob,Force Download,我正在寻找一种最好的方法,使用javascript从客户端强制下载生成的视频(~50mb),而不访问服务器。 我知道(在我的案例中,由于cors政策,哪个解决方案不起作用)。 所以我的问题涉及aws s3。是否有一种简单的方法(可能使用)强制下载 或者使用Plyr视频播放器中的缓冲区对象(是的,还有一个播放此视频的播放器)制作可下载的mp4会更简单吗 这样的解决方案 var req = new XMLHttpRequest(); var videourl = "https://shotstack

我正在寻找一种最好的方法,使用javascript从客户端强制下载生成的视频(~50mb),而不访问服务器。 我知道(在我的案例中,由于cors政策,哪个解决方案不起作用)。 所以我的问题涉及aws s3。是否有一种简单的方法(可能使用)强制下载

或者使用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();

您展示的代码实质上单击了具有下载属性的锚定链接,会发生什么情况?您展示的代码实质上单击了具有下载属性的锚定链接,会发生什么情况?