Вопрос

У меня есть веб-сайт Drupal, где пользователи нажимают на ссылку, которая инициирует загрузку файла из сети доставки контента (CDN).Скрипт отслеживает количество пользователей, которые нажимают на ссылку, чтобы начать процесс загрузки.Я ищу предложения о том, как я мог бы отслеживать количество пользователей, успешно завершивших процесс загрузки.

Это было полезно?

Решение

Если вам нужно только число из завершенных загрузок просто извлеките необработанные журналы из вашего CDN и запустите их с помощью инструмента анализа журналов.Большинство CDN предоставляют ежедневные журналы доступа в качестве стандартной услуги.Более крупные игроки могут вести ежечасные логи или лучше.

Лучшее решение будет зависеть от вашего CDN, поэтому поговорите с ними, если вы еще этого не сделали.Однако вот как я делал это в прошлом.

К каждому сгенерированному защищенному URL-адресу загрузки добавьте уникальный идентификатор пользователя, сделавшего запрос.Типичный URL-адрес загрузки CDN может содержать время истечения срока действия и хэш для предотвращения несанкционированного доступа.Сначала вам нужно будет проверить свой CDN, чтобы убедиться, что вы выбрали имя переменной, которое не противоречит их API.В нашем случае мы договорились о префиксе ign_* (что означает игнорировать).)

До того , как:

http://cdn.example.com/path/to/file.ext?e=EXPIRES&h=HASH

После:

http://cdn.example.com/path/to/file.ext?e=EXPIRES&ign_u=USERID&h=HASH

Пример (ссылка для скачивания для пользователя 1234):

http://cdn.example.com/path/to/file.ext?e=1356088260&ign_u=1234&h=39341385b9d99730646d927f620111e1

Теперь, когда вы загружаете свои необработанные журналы, каждую запись можно связать с одним из ваших пользователей, просто проанализировав строку запроса.Отсюда вы можете делать все, начиная с подсчета количества завершенных загрузок и заканчивая внедрением отчетов о загрузках для каждого пользователя.

В нашем случае журналы были доступны каждые 15 минут, и я автоматизировал выборку и обработку, чтобы включить квоты на загрузку на уровне байтов для каждого пользователя.

Одна вещь, которую следует иметь в виду, если вы собираетесь обрабатывать журналы самостоятельно, - это сгруппировать частичные записи HTTP 206 вместе.Особенно, если вас интересует "количество завершенных загрузок".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top