Кэширование отпечатков URL на Amazon S3 - PullRequest
5 голосов
/ 13 июля 2011

У меня есть корзина на 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 Ответ

2 голосов
/ 13 июля 2011

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

...