2016-04-10 50 views
0

我刚刚添加了一些功能my site,当用户将鼠标悬停在链接(第三方页面)上时,会从元标记创建链接预览目标页面并显示。我担心在我目前的实施中热链接的影响。执行第三方图像的服务器端缓存

我现在正考虑实现某种服务器端缓存,以便第一个预览请求从目标页面获取信息和图像,但每个后续请求(达到某个年龄限制)都是从我的主机上有一个缓存。我相对有信心可以实现我自己的一些东西,但有没有像这样的现成解决方案?我是自学成才的,所以我猜测我的DIY解决方案不够理想。谢谢。

编辑我实施了一个DIY解决方案(见下文),但我仍然乐于提出如何有效地完成这项工作的建议。

回答

0

我找不到任何现成的解决方案,所以我用PHP编写了一个解决方案。

它接受一个URL作为HTTP GET参数并进行一些错误检查。如果通过了错误检查,它会从磁盘打开JSON编码的数据库,并将数据解析为包含我想要的信息的Record对象数组。提供的URL用作数组密钥。如果该键存在于数组中,则返回缓存的信息。否则,网页被抓取,元标记解析,图像保存在本地,并返回缓存的数据。然后将缓存的信息插入到数据库中。将缓存的信息返回到请求页面后,将检查每个记录的到期日期,并删除过期的记录。缓存记录的每个请求都会延长其到期日期。最后,数据库被JSON编码并写回到磁盘。