2015-03-13 89 views
6

我試圖結合Azure將大部分文件存儲在應用程序中。我希望將這些文件上傳到Azure的私有容器和私人Blob,並將這些上傳通過Azure CDN複製到所有其他節點(仍作爲私有容器和Blob)。然後,我希望我的應用程序向存儲的blob發出請求,並在一段時間內向我提供blob的共享訪問簽名鏈接。但是,我希望生成的鏈接可以爲用戶提供最近的數據中心。每當需要blob時,我都會生成SAS,但我需要能夠使用CDN上的SAS選項。使用Azure甚至可以這樣做,還是我只能在一個數據中心中使用SAS?使用共享訪問簽名的Azure CDN

編輯 我希望我們的CDN充當如果我們的主數據中心的副本,所以我不想除非它們從主數據中心刪除永遠要刪除的CDN對象。如果我創建了SAS並將其放在CDN URL的末尾,如果SAS上的截止日期已過,但不是緩存持續時間,用戶是否能夠返回並訪問該文件?

繼承人我的例子:

顯然,用戶可以訪問該網址,直到2015年4月1日,但如果他們回來對2015年4月2日,將他們仍然有機會?

另外,假設我將blob的緩存控制標頭設置爲與SAS URL同時過期,這也是緩存持續時間之後。然後,我有一個用戶在2015年4月8日回來找同一個blob,我們會生成一個新的SAS並將其提供給用戶,blob是否仍在CDN上,或者緩存控制頭是否將其從CDN中刪除?

回答

5

您可以將SAS網址與CDN結合使用。您只需提供附加到CDN URL的正確SAS簽名即可。

它看起來像:

這種方法的一些注意事項:

  • 任何人只要有這個網址可以訪問該文件,那麼你就必須有一種機制來保持這個URL私人。這也意味着如果URL泄漏出來,那麼任何人都可以訪問該文件,因此您必須確定這是否是可接受的安全級別。
  • CDN將使用包括SAS在內的完整URL來緩存對象,因此緩存對象對於默認爲7天的緩存持續時間有效。這意味着您需要確保將blob上的緩存控制標頭設置爲與SAS URL相同的持續時間,以便緩存的CDN對象將與SAS URL同時過期。
+0

查看我原來的帖子瞭解更多信息/澄清。 – SchaF 2015-03-31 18:50:37

相關問題