代码之家  ›  专栏  ›  技术社区  ›  Matt V.

从网站/cdn跟踪下载完成情况

  •  2
  • Matt V.  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   oops    15 年前

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

    最好的解决方案将取决于您的cdn,因此如果您还没有,请与他们联系。不过,我过去是这样做的。

    对于生成的每个受保护的下载URL,为发出请求的用户附加一个唯一的ID。一个典型的cdn下载URL可能包含一个到期时间和一个散列来防止篡改。您需要首先检查您的cdn,以确保您选择的变量名不会与它们的api冲突。在我们的例子中,我们约定了一个前缀ign_u*(意思是忽略)。

    之前:

    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分钟就有一个日志可用,我自动化了获取和处理,以启用每个用户的字节级下载配额。

    要记住的一件事是,如果您要自己处理日志,将HTTP206部分条目分组在一起。尤其是如果您对“已完成下载的数量”感兴趣。