【问题标题】:URL fingerprint caching on Amazon S3Amazon S3 上的 URL 指纹缓存
【发布时间】:2011-07-13 20:43:38
【问题描述】:

我在 Amazon S3 上有一个存储桶,我在其中保存有时会更改的文件,但我想对它们使用最大缓存,因此我想使用 URL 指纹识别使缓存无效。

我使用文件的“最后修改”日期作为指纹,请求 S3 文件的 html 页面总是知道每个文件的指纹。

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

http://aws.amazon.com/bucket/myFile.jpg?v=1310476099061

但是对于某些代理或旧版浏览器来说,查询字符串并不总是足以使缓存无效,如果它包含查询字符串,某些代理和浏览器甚至不会缓存它。这就是为什么我想将指纹保留在实际 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

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

现在我的问题是:有什么方法可以重写 url,以便像http://aws.amazon.com/bucket/myFile-xxxxxx.jpg 这样的 URL 请求将在 Amazon S3 上为http://aws.amazon.com/bucket/myFile.jpg 文件提供服务?还是有任何其他解决方法仍然可以保持文件缓存?谢谢=)

【问题讨论】:

    标签: url caching mod-rewrite amazon-s3 fingerprint


    【解决方案1】:

    恐怕你被查询字符串中的版本卡住了。如果不实际更改文件名,就无法在 S3 上重写 url。

    【讨论】:

    • 那太糟糕了。虽然,我想我只是上传文件名中带有指纹的文件并通过脚本删除旧的文件,这应该具有相同的效果。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-05-04
    • 2011-12-19
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    相关资源
    最近更新 更多