Кэширование отпечатков URL-адресов в Amazon S3
У меня есть ведро на Amazon S3, где я храню файлы, которые иногда меняются, но я хочу использовать максимальное кэширование для них, поэтому я хочу использовать отпечатки пальцев URL, чтобы аннулировать кэш.
Я использую "последнюю измененную" дату файлов для отпечатка пальца, и html-страница, запрашивающая файлы S3, всегда знает отпечаток каждого файла.
Теперь я понимаю, что могу использовать отпечаток пальца в строке запроса, например:
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 так, чтобы запрос на URL, подобныйhttp://aws.amazon.com/bucket/myFile-xxxxxx.jpg
, служил http://aws.amazon.com/bucket/myFile.jpg
файлу на Amazon S3? Или есть какие-то другие обходные пути, которые по-прежнему будут держать файл в кэше? Спасибо =)