大家好,所以我要使用弹性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>
答案 0 :(得分:0)
您应该在s3存储桶上启用cors:
启用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>
从服务器代码中上传文件非常重要,如下所示:
内容类型:“应用程序/八位字节流”
How to set content-type PHP SDK
希望能帮助您!