跟踪来自网站/cdn 的下载完成情况

Posted

技术标签:

【中文标题】跟踪来自网站/cdn 的下载完成情况【英文标题】:tracking download completions from a website/cdn 【发布时间】:2009-12-18 06:50:30 【问题描述】:

我有一个 Drupal 网站,用户在该网站上单击一个链接,该链接会从内容交付网络 (CDN) 启动文件下载。一个脚本正在跟踪单击链接开始下载过程的用户数量。我正在寻找有关如何跟踪成功完成下载过程的用户数量的建议。

【问题讨论】:

“下载过程”究竟是什么?您是指从下载开始到下载完成所需的时间吗? 理想情况下,我希望能够验证下载是否完成,用户是否拥有完整的文件。 【参考方案1】:

如果您只需要 数量 的已完成下载,只需从 CDN 获取原始日志并通过日志分析工具运行它们。大多数 CDN 提供日常访问日志作为标准服务。较大的玩家可以做每小时日志或更好。

最佳解决方案取决于您的 CDN,如果您还没有,请与他们联系。但是,这是我过去的做法。

在生成的每个受保护的下载 URL 中,为发出请求的用户附加一个唯一 ID。典型的 CDN 下载 URL 可能包含到期时间和哈希值以防止篡改。您需要先检查您的 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 部分条目组合在一起。特别是如果您对“已完成下载的数量”感兴趣。

【讨论】:

能够获取 CDN 日志是关键 - 我们使用 Angelfish 软件来处理这个确切的场景。

以上是关于跟踪来自网站/cdn 的下载完成情况的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C/C++ 中跟踪程序过程的完成情况

在没有嵌套函数的情况下跟踪 javascript 回调的完成

如何在不使用跟踪句柄的情况下等待未知数量的 Rust 线​​程完成?

来自 cdn 的图像,以及 SSL 的问题

跟踪付款在 10 分钟内完成

项目跟踪管理三个部分