从 s3 存储桶下载 ajax php

download from s3 bucket ajax php

大家好,我正在使用 elastic beanstock 将我的网站迁移到 AWS 和 s3。我 运行 遇到了一些问题,因为我的 PHP 文件存储在与 s3 存储桶不同的 URL 上。

例如,我的网站 URL 与此类似 http://mysite.eu-west-1.elasticbeanstalk.com/test2.php, and my s3 bucket URL is similar to this https://s3.us-east-2.amazonaws.com/my-media-services/stockUploads/a288f1366c721c3cdcc8d417f866758d/test_184.mp4 因为您可以看到它们是不同的并且 HTML 不支持跨源下载属性 URLS。

因此,是否可以通过 ajax 下载文件,以便用户不必转到另一个页面,从而获得与 html5 下载属性类似的体验?如果是这样,我该怎么做?我正在使用 AWS PHP SDK

这不再有效,因为它在 s3 上并且是跨源的

<a href="https://s3.us-east-2.amazonaws.com/my-media-services/stockUploads/a288f1366c721c3cdcc8d417f866758d/test_184.mp4" download>download</a>

您应该在 s3 存储桶上启用 cors:

  1. Select 桶
  2. Select 权限选项卡
  3. Select CORS
  4. 启用 CORS 配置:

    <CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example1.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> </CORSRule> </CORSConfiguration>

要下载文件,您需要向对象 (mp4) 添加元数据:

这是工作:

<a id="download" href="https://s3.amazonaws.com/dev-repositorio-imagenes/colocolo/YODA_HD.mp4" download>Download</a>

Read More

从服务器代码上传文件非常重要:

content-type:"application/octet-stream"

How to set content-type PHP SDK

希望能帮到你!