CDN缓存图像重定向和永久链接

时间:2012-04-13 17:58:44

标签: php model-view-controller caching amazon-s3 cdn

我们的PHP / MVC webapp允许用户上传图片。他们为每个图像获取一个链接,例如:http://example.com/images/55其中55是我们存储在数据库中的ID,因此我们可以将用户与他们的图片相关联。我们不是将图像数据存储在我们的数据库中,而是存储在Amazon S3上。

当用户稍后请求此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,甚至更好地直接从缓存中检索此图像。如果没有,构建我们的链接/重定向方案的“最佳”方式是什么?我们将生成包含大量缩略图的页面,我希望这些页面可以缓存,以便用户体验流畅。

1 个答案:

答案 0 :(得分:1)

根据我的经验,您的请求正是发生的事情。浏览器,在我的Mac Mac上的Safari 5,点击脚本URL,重定向到CDN并在原始脚本URL下缓存图像 ...

我注意到了这一点,因为我需要相反。同样的情况,但在我的情况下用户想要改变他们的照片。上传进行得很顺利,但浏览器仍然显示旧图像......(在继续前进之前请考虑这一点)