Amazon S3上的URL指纹缓存

Fla*_*ari 5 url mod-rewrite caching amazon-s3 fingerprint

我在Amazon S3上有一个存储桶,我保留有时会更改的文件,但我想对它们使用最大缓存,所以我想使用URL指纹识别来使缓存无效.

我使用指纹文件的"最后修改"日期,请求S3文件的html页面始终知道每个文件的指纹.

现在,我意识到我可以在查询字符串中使用指纹,如下所示:

http://aws.amazon.com/bucket/myFile.jpg?v=1310476099061
Run Code Online (Sandbox Code Playgroud)

但是查询字符串并不总是足以使某些代理或旧版本的浏览器使缓存无效,而某些代理和浏览器如果包含查询字符串则甚至不会缓存它.这就是为什么我想将指纹保留在实际的URL中,如下所示:

http://aws.amazon.com/bucket/myFile-1310476099061.jpg
http://aws.amazon.com/bucket/1310476099061/myFile.jpg
http://aws.amazon.com/bucket/myFile.jpg/1310476099061
etc
Run Code Online (Sandbox Code Playgroud)

这些URL中的任何一个都非常适合请求myFile.jpg,但我希望将其全部重新映射到http://aws.amazon.com/bucket/myFile.jpg文件中.也就是说,我只想更改URL,以便浏览器认为它是一个新文件,并获得一个新的文件,它将缓存一年.当我上传该文件的新版本时,指纹会自动更新.

现在我的问题是:有没有办法重写网址,以便像这样的URL请求http://aws.amazon.com/bucket/myFile-xxxxxx.jpghttp://aws.amazon.com/bucket/myFile.jpg在Amazon S3上提供文件?或者是否有任何其他解决方法仍然会保持文件缓存?谢谢=)

Geo*_*ord 2

恐怕您会被查询字符串中的版本所困扰。在不实际更改文件名的情况下,无法重写 S3 上的 url。