2016-04-10 80 views
0

我剛剛添加了一些功能my site,當用戶將鼠標懸停在鏈接(第三方頁面)上時,會從元標記創建鏈接預覽目標頁面並顯示。我擔心在我目前的實施中熱鏈接的影響。執行第三方圖像的服務器端緩存

我現在正考慮實現某種服務器端緩存,以便第一個預覽請求從目標頁面獲取信息和圖像,但每個後續請求(達到某個年齡限制)都是從我的主機上有一個緩存。我相對有信心可以實現我自己的一些東西,但有沒有像這樣的現成解決方案?我是自學成才的,所以我猜測我的DIY解決方案不夠理想。謝謝。

編輯我實施了一個DIY解決方案(見下文),但我仍然樂於提出如何有效地完成這項工作的建議。

回答

0

我找不到任何現成的解決方案,所以我用PHP編寫了一個解決方案。

它接受一個URL作爲HTTP GET參數並進行一些錯誤檢查。如果通過了錯誤檢查,它會從磁盤打開JSON編碼的數據庫,並將數據解析爲包含我想要的信息的Record對象數組。提供的URL用作數組密鑰。如果該鍵存在於數組中,則返回緩存的信息。否則,網頁被抓取,元標記解析,圖像保存在本地,並返回緩存的數據。然後將緩存的信息插入到數據庫中。將緩存的信息返回到請求頁面後,將檢查每個記錄的到期日期,並刪除過期的記錄。緩存記錄的每個請求都會延長其到期日期。最後,數據庫被JSON編碼並寫回到磁盤。