从s3 bucket ajax php

时间:2018-10-23 22:00:44

标签: php ajax amazon-web-services amazon-s3 cross-domain

大家好,所以我要使用弹性beanstock将网站移至AWS和s3。我遇到了一个问题,因为我的PHP文件存储在与s3存储桶不同的URL上。

例如,我的网站URL与此http://mysite.eu-west-1.elasticbeanstalk.com/test2.php类似,而我的s3存储桶URL与此https://s3.us-east-2.amazonaws.com/my-media-services/stockUploads/a288f1366c721c3cdcc8d417f866758d/test_184.mp4类似,因为您可以看到它们是不同的,并且不支持通过cross -原始网址。

是否可以通过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>

1 个答案:

答案 0 :(得分:0)

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

  1. 选择存储桶
  2. 选择权限标签
  3. 选择CORS
  4. 启用CORS配置:

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

    enter image description here

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

enter image description here

这里正在工作:

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

Read More

从服务器代码中上传文件非常重要,如下所示:

  

内容类型:“应用程序/八位字节流”

How to set content-type PHP SDK

希望能帮助您!