2012-07-04 43 views
3

我有興趣瞭解爲什麼像Twitter和Facebook這樣的服務如此多地命名他們的CDN文件。看着http://25.media.tumblr.com/tumblr_m6m6g57NgY1qdhfhho2_1280.jpg我有些觀察問題:Amazon S3文件和路徑命名體系結構決策

  1. 他們是否使用多個子域(25.media,26.media等)從一個域卸載DNS查詢?看起來像storage.tumblr.com對於他們的所有圖像來說足夠好,因爲S3只有一個大桶的概念。
  2. 他們是否在文件名中插入散列字符串以防止從網頁收集工具順序走?這似乎是一個好主意。取文件名並追加一些垃圾,將其散列,然後將該散列插入到tumblr_XXXXXXXXXXXXXXXXXX_1280.jpg文件名中。

回答

4
  1. 瀏覽器有限制他們可以多少並行請求作出單個域,使用多個子域意味着更多的並行請求。請參閱:http://yuiblog.com/blog/2007/04/11/performance-research-part-4/

  2. 由於您描述的原因,它們可能使用看似隨機的文件名。但更有可能的是,他們正在使用它來確保文件名的唯一性,並且如果文件發生更改,也會使緩存失效,從而確保所有用戶都看到最新版本。

0
  1. 另一個可能的原因爲多個子域是事實,他們可能會使用多種媒體容器由於每個容器可容納(或應該持有,讓事情變得快速運行的對象數量限制。太單個容器中的許多對象可能會減慢速度)。