Amazon S3文件和路径命名体系结构决策

时间:2012-07-04 17:42:36

标签: architecture hash amazon-s3 cdn

我有兴趣了解为什么像Twitter和Facebook这么多服务以他们的方式命名他们的CDN文件。看http://25.media.tumblr.com/tumblr_m6m6g57NgY1qdhfhho2_1280.jpg我有一些观察性问题:

  1. 他们是否使用多个子域(25.media,26.media等)从单个域卸载DNS查询?看起来像storage.tumblr.com对他们所有的图像都足够好,因为S3只有一个大桶的概念。
  2. 他们是否在文件名中插入了哈希字符串,以防止从网络收获工具顺序走?这似乎是一个好主意。获取文件名并向其附加一些垃圾,哈希,并将该哈希插入tumblr_XXXXXXXXXXXXXXXXXX_1280.jpg文件名。

2 个答案:

答案 0 :(得分:4)

  1. 浏览器限制了它们可以对单个域进行多少并行请求,使用多个子域意味着更多并行请求。请参阅:http://yuiblog.com/blog/2007/04/11/performance-research-part-4/

  2. 由于您描述的原因,他们可能正在使用看似随机的文件名。但是,如果文件发生变化,他们更有可能使用它来确保文件名唯一性并使缓存失效,从而确保所有用户都看到最新版本。

答案 1 :(得分:0)

  1. 多个子域的另一个可能原因是他们可能正在使用多个媒体容器,因为每个容器可能容纳(或应该保持,以保持运行快速的对象数量限制。单个容器中的对象太多可以放慢速度。)