【问题标题】:Best way to count file downloads on a website计算网站上文件下载的最佳方法
【发布时间】:2010-09-14 13:27:20
【问题描述】:

很难为这个问题找到一个简单明了的答案:

  1. 我的网站上有一个文件 foo.zip
  2. 我该怎么做才能知道有多少人访问了这个文件?
  3. 如有必要,我可以使用 Tomcat 调用

【问题讨论】:

    标签: counter


    【解决方案1】:

    如果您不需要实时数据,也可以解析日志文件。

    grep foo.zip /path/to/access.log | grep 200 | wc -l
    

    回复评论:

    日志文件还包含下载的字节数,但正如其他人指出的那样,如果用户在客户端取消下载,这可能无法反映正确的计数。

    【讨论】:

    • 这会告诉您下载是完成还是取消?
    • -1。请看下一个答案。它比解析日志更简单
    • 编写一个增加计数器然后将请求转发到另一个文件的脚本是否更简单?好的。
    • 我只是花一些时间试图找出如果我可以访问日志,以及在哪里我可以找到它们。关于默认位置的提示会很棒。否则,人们可能很容易花费尽可能多的时间来搜索日志,因为它需要编写一个递增计数器的脚本......尤其是如果事实证明你没有像我这样的日志:)
    【解决方案2】:

    最简单的方法可能不是直接链接到文件,而是链接到增加计数器然后转发到相关文件的脚本。

    【讨论】:

    • 你得到下载attempts,这很合理。
    • 如需更多信息,this answer 中的链接非常有用。
    【解决方案3】:

    回答“最简单的方法可能不是直接链接到文件,而是链接到增加计数器然后转发到相关文件的脚本。”

    这是额外的:

    $hit_count = @file_get_contents('count.txt');
    $hit_count++;
    @file_put_contents('count.txt', $hit_count);
    
    header('Location: http://www.example.com/download/pics.zip'); // redirect to the real    file to be downloaded
    

    这里的count.txt 是一个简单的纯文本文件,用于存储计数器信息。 您也可以将其与downloadable_filename.ext 一起保存在数据库表中。

    【讨论】:

    • 如何链接到脚本
    【解决方案4】:

    使用日志——文件的每个 GET 请求都是另一个下载(除非访问者由于某种原因在中途停止了下载)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      相关资源
      最近更新 更多