如何跟踪文件下载次数?

时间:2014-02-10 02:39:42

标签: jquery ruby-on-rails amazon-s3 amazon-cloudfront

我正在尝试跟踪用户何时从我的Rails网站下载.zip文件。该文件由S3 / Cloudfront托管。如果HTML类似于:

<a href="http://something.cloudfront.net/path/to/file.zip">Download File</a>

我可以附加一个JQuery事件,它将向我的服务器发送一个GET请求,这将增加我数据库中的下载列。但是,如果用户直接转到该URL,则会进行下载,但不会对其进行跟踪。

有解决方案吗?

3 个答案:

答案 0 :(得分:2)

如果您不介意跟踪结果有点延迟,则最准确的跟踪是使用CloudFront的访问日志。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html

通过解析访问日志,您将能够找到项目的确切请求历史记录。

答案 1 :(得分:1)

Yudong的答案是唯一可以通过提供下载链接而工作的答案,但亚马逊表示他们以“尽力而为”的方式登录,并且它绝不是准确的会计。我认为最简单的方法是重定向并计算重定向,最准确的是通过您的服务器自己传输zip文件(如果托管在亚马逊上也不会产生巨大的差异,除非您有大量的流量和巨大的文件)。另一种方法是使用CDN,它可以为您提供准确的访问日志。你的Jquery想法和重定向一样好。

答案 2 :(得分:1)

解析这些云前端日志并不容易(您必须拥有EMR定期作业并将结果发布到数据库等 - 有些工作涉及)。

如果您不愿意支付一些费用,可以使用以下服务: https://qloudstat.com/welcome http://www.s3stat.com/