如何通过Amazon CloudFront访问文件时隐藏实际文件名?

时间:2015-09-02 12:04:45

标签: amazon-cloudfront

有一个包含数百万个MP3文件的S3存储桶。每个音乐文件及其预览MP3文件都位于该存储桶内的文件夹中。例如,对于给定的音乐:

/music/123456/file_master.mp3 /music/123456/file_preview.mp3

我想让最终用户通过CloudFront及其网络流媒体功能访问预览文件。所以我设置了Cloud Front,因此可以点击指向CloudFront上文件的链接:

http://blahblah.cloudfont.net/music/123456/file_preview.mp3

除了用户可以抓取文件URL,用_master替换_preview部分然后收听整个曲目之外,它的工作原理很完美。不幸的是,将主文件和预览文件移动到两个不同的位置是不可取的,因为不仅有数百万个,而且摄取系统也不断发布具有该结构的文件。

有没有办法隐藏文件名和/或文件路径?例如像http://blahblah.cloudfront.net/music/123456/ABC这样的东西是完美的。

1 个答案:

答案 0 :(得分:0)

我认为CloudFront不支持您提议的那种URL重写,但您可以通过为CloudFront分配添加新行为来解决您的问题,并仅在该行为中使用“路径模式”匹配f.ex. “*_preview.mp3”然后使用行为优先级将新行为置于分发的默认行为之前(行为按第一次匹配的顺序处理),最后将默认行为设置为“Restrict Viewer”在新行为中将“受限查看者访问”设置为“否”时访问“设置为”是“,然后仅匹配”*_preview.mp3

有关路径模式的更多信息,请参阅http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern