Кэширование отпечатков 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? Или есть какие-то другие обходные пути, которые по-прежнему будут держать файл в кэше? Спасибо =)

1 5

1 ответ:

Боюсь, что вы застряли с версией в строке запроса. Нет никакого способа переписать URL-адреса на S3, фактически не изменив имя файла.