我想弄清楚我是否可以讓瀏覽器緩存帶有簽名url的圖像。用不同的查詢字符串緩存圖像(S3簽名的url)
我想要的是爲每個請求(相同的圖像,但具有更新的簽名)生成一個新的簽名的url,但瀏覽器不會每次都重新下載它。
因此,假設緩存相關的標頭設置正確,並且除查詢字符串外的所有URL都相同,有什麼方法可以讓瀏覽器緩存它嗎?
的URL看起來是這樣的:
http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297463
http://example.s3.amazonaws.com/magic.jpg?WSAccessKeyId=stuff&Signature=stuff&Expires=1276297500
我們計劃設置電子標籤是一個的md5sum,所以將它至少弄清楚它是在這一點上相同的圖像?
我的另一種選擇是跟蹤上次發佈網址的時間,然後在舊的網址過期前稍微給出新網址,但我不想處理會話信息。
你知道它是否至少會檢查電子標籤而不是再次下載它? – 2010-06-16 05:07:27
ETag頭只在瀏覽器發現緩存中的文件(並且原始文件具有ETag值)時纔會發送到服務器。因此,如果在緩存中找不到它(如果URL已更改,則不會發現),請求中不會發送ETag值。 – 2010-06-16 05:35:55
URL重寫規則會再次使S3簽名無效,因爲Web服務器會自動提供未過期的鏈接。然後,您還可以將S3中的文件標記爲「公開」。 (然後,不需要簽名來訪問文件) – Tarnschaf 2010-09-29 09:36:49