2012-04-13 2 views
0

Наш PHP/MVC webapp позволяет пользователям загружать фотографии. Они получают ссылку для каждого изображения, например: http://example.com/images/55 где 55 - это идентификатор, который мы храним в нашей базе данных, чтобы мы могли ассоциировать пользователей с их фотографиями. Мы не храним данные изображения внутри нашей базы данных, а фактически на Amazon S3.CDN Caching Перенаправления изображений и постоянные ссылки

Когда пользователь запрашивает этот URL-адрес позже, наш сервер создает фактический URL-адрес и выдает header('Location: https://s3.amazonaws.com/example/media/1234') перенаправление в браузер, где 1234 является id 55, запутанным. Мы настроили эту схему, чтобы мы могли иметь решение «permalink» в случае изменения бэкэнд - исходный URL-адрес просто перерисовывается за кулисами.

С помощью этой схемы можно ли кэшировать браузер браузера для всего процесса? Например, запрос http://example.com/images/55 позволит полностью ударить наш сервер и запросить https://s3.amazonaws.com/example/media/1234 напрямую или даже лучше получить это изображение непосредственно из кеша. Если нет, то какой «лучший» способ структурировать нашу схему ссылок/перенаправления? Мы собираемся создавать страницы с большим количеством эскизов, и я бы хотел, чтобы те были кэшированы, чтобы UX был плавным.

+0

Какой смысл отправлять перенаправление заголовка в CDN? Вы по-прежнему поражаете свой сервер в первую очередь ?! – konsolenfreddy

+0

Да, но мы не обслуживаем контент изображения, просто местоположение изображения. – Harper

+0

Это правда, но ваш весь процесс PHP уже начнётся с этого момента. – konsolenfreddy

ответ

1

К моему опыту, Ваш запрос именно то, что происходит. Браузер, в моем случае Safari 5 на Mac, попадает в URL-адрес скрипта, перенаправляется на CDN и кэширует изображение по исходному URL-адресу сценария ...

Я заметил это, потому что мне нужно обратное. Такая же ситуация, но в моем случае пользователь хочет изменить свое изображение. Загрузка продолжается хорошо, но браузер продолжает показывать старое изображение ... (подумайте об этом, прежде чем продолжить путь)

+0

Спасибо. В моей ситуации я действительно хочу, чтобы изображения кэшировались «навсегда», но в качестве альтернативы я мог позволить изменять изображения, добавив кэш-память (например, временную метку) в строку запроса, то есть url? T = 13372034788 – Harper

Смежные вопросы