我有存储我所有文件的 Amazon S3。目前,我的用户可以转到可以流式传输但不能下载音频和视频文件的链接。如何通过 Amazon S3 或 Amazon CloudFront 建立一个链接,允许某人下载 MP3 文件或类似的东西?
感谢您的任何建议!
我有存储我所有文件的 Amazon S3。目前,我的用户可以转到可以流式传输但不能下载音频和视频文件的链接。如何通过 Amazon S3 或 Amazon CloudFront 建立一个链接,允许某人下载 MP3 文件或类似的东西?
感谢您的任何建议!
您必须将文件的内容标头设置为浏览器能够理解的媒体类型以外的内容。例如:
Content-Disposition: attachment; filename=FILENAME.EXT
Content-Type: application/octet-stream
如果您想要同时拥有这两种功能(显示/查看能力和下载能力)并且过去必须通过 EC2 或其他烦人的方式代理文件下载,这曾经是一个大问题。现在 S3 内置了它:
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html
您可以使用下表中列出的查询参数覆盖一组响应标头的值。这些响应标头值仅在请求成功时发送,即在返回状态码 200 OK 时发送。您可以使用这些参数覆盖的标头集是 Amazon S3 在您创建对象时接受的标头的子集。您可以为 GET 响应覆盖的响应标头是 Content-Type、Content-Language、Expires、Cache-Control、Content-Disposition 和 Content-Encoding。要覆盖 GET 响应中的这些标头值,请使用下表中描述的请求参数。(以上链接)