Можно получить образ из Amazon S3, но создать его, если он не существует - PullRequest
1 голос
/ 02 декабря 2010

Я не знаю, как сформулировать вопрос, но вот что я хочу сделать.

У меня есть сайт, который использует собственные наложения карты на карте Google.

Javascript вызывает файл php на моем сервере, который проверяет, существует ли существующий фрагмент карты для заданных значений x, y и масштаба.

Если существует, он отображает это изображениеиспользуя file_get_contents.

Если он не существует, он создает новую плитку, а затем отображает ее.

Я хотел бы использовать магазин Amazon S3 и обслуживать изображения, поскольку их может быть многоиз них и мой сервер работает медленно.Если у меня есть сценарий проверки, чтобы увидеть, существует ли изображение на Amazon, а затем отобразить его, я предполагаю, что я не получаю преимущества скорости и Amazons CDN.Есть ли способ сделать это?

Или есть способ попробовать сначала извлечь файл из Amazon, а затем настроить что-то на Amazon для перенаправления на мой скрипт, если файлов там нет?

Может быть, разместить скрипт на другом изУслуги амазонок?Генерация тайла в некоторых случаях происходит довольно медленно.

Спасибо

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Идеи:

1 - используйте CloudFront , но укажите на кластер машин генерации плиток.Таким образом, вы можете создавать плитки по требованию, и любые будущие запросы будут обслуживаться прямо из Cloudfront.

2 - Используйте CloudFront, но вернитесь к хранилищу сгенерированных плиток S3.Включите ведение журнала для корзины S3, чтобы вы могли обнаружить неудавшиеся запросы.Используйте эти журналы по расписанию и создайте недостающие плитки.Это приводит к более дешевому способу генерации плиток, но означает, что, когда плитка выходит из строя, пользователь ничего не получает.

3 - Просто предварительно сгенерируйте все плитки.Бросьте задачи в очередь SQS, затем раскрутите коллекцию экземпляров EC2, чтобы сгенерировать плитки.Это будет стоить больше всего, но все пользователи получают быстрый опыт.

0 голосов
/ 02 декабря 2010

Я написал сообщение в блоге со стратегией борьбы с этим.Он предназначен для интеллектуального и экономного использования CloudFront, максимального кеширования и работы с новыми версиями существующих изображений.Вы можете найти описанную там технику полезной.Пример кода показывает, как обрабатывать различные размеры (например, миниатюры) изображений.Вы можете изменить его так, чтобы он обрабатывал разные уровни масштабирования.

Мне нужно обновить этот пост, чтобы он поддерживал пользовательские источники CloudFront, и я думаю, что для вашего приложения вам лучше не использовать S3 и использовать пользовательские источники.Преимущество пользовательского источника заключается в том, что, вероятно, будет проще управлять всеми вашими изображениями в локальной файловой системе по сравнению с управлением ими на S3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...