отслеживание загрузки завершений с сайта / cdn - PullRequest
2 голосов
/ 18 декабря 2009

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

1 Ответ

2 голосов
/ 19 декабря 2009

Если вам нужен только номер завершенных загрузок, просто возьмите необработанные журналы с вашего 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 вместе. Особенно, если вас интересует «количество выполненных загрузок».

...