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