2012-04-13 69 views
0

我們的PHP/MVC webapp可讓用戶上傳圖片。他們得到每個圖像的鏈接,如:http://example.com/images/55其中55是我們在數據庫中存儲的id,因此我們可以將用戶與他們的圖片關聯起來。我們不是將圖像數據存儲在數據庫中,而是實際存儲在Amazon S3上。CDN緩存圖像重定向和固定鏈接

當用戶稍後請求此URL時,我們的服務器會生成實際的URL,並向瀏覽器發出header('Location: https://s3.amazonaws.com/example/media/1234')重定向,其中1234的ID爲55混淆。我們設置了這個方案,所以我們可以有一個'永久鏈接'的解決方案,以防後端發生變化 - 原始URL只是被重新映射到後臺。

有了這個方案,是否有可能讓客戶端瀏覽器緩存整個過程?例如,請求http://example.com/images/55將避免直接訪問我們的服務器,並直接請求https://s3.amazonaws.com/example/media/1234,或者甚至更好,直接從緩存中檢索此圖像。如果沒有,那麼構建我們的鏈接/重定向方案的「最佳」方式是什麼?我們將製作帶有許多縮略圖的頁面,我希望這些頁面可以緩存,這樣用戶體驗很流暢。

+0

發送頭重定向到CDN有什麼意義?你仍然直接擊中你的服務器?! – konsolenfreddy 2012-04-13 18:01:55

+0

是的,但我們不提供圖像內容,只是圖像位置。 – Harper 2012-04-13 18:02:20

+0

這當然是真的,但是您的整個PHP過程將由此開始。 – konsolenfreddy 2012-04-13 18:03:36

回答

1

以我的經驗,您的請求正是發生了什麼。瀏覽器,在我的Mac上的Safari瀏覽器的情況下5,打腳本URL,重定向到CDN和原始腳本URL下緩存圖像...

我注意到這一點,因爲我需要相反。同樣的情況,但在我的情況下用戶想改變他們的圖片。上傳進行得很好,但瀏覽器不斷顯示舊圖像...(在繼續你的路徑之前考慮這一點)

+0

謝謝。在我的情況下,我實際上希望將圖像緩存爲「永久」 - 但作爲替代,我可以通過在查詢字符串中追加緩存破解程序(例如時間戳)來允許更改圖像,即url?t = 13372034788 – Harper 2012-06-06 06:15:10