2012-09-14 125 views
1

我已经将一些对象放在S3存储桶中,并且我希望每次客户端向这些对象中的一个发出请求时都会记录日志。对亚马逊S3对象的ASP.NET日志请求

我使用Umbraco 4.8作为我的后端运行一些自定义代码。

的解决方案,我想出来的:

  1. 设置链接到拉从S3对象并把它作为响应返回的ASP页面。我看到的问题是,客户端必须等待ASP加载文件,然后才能开始下载文件。

  2. 将链接设置为记录请求并返回Response.Redirect到S3对象的ASP页面。对我来说,这看起来像是一次不必要的重定向,客户端可能会缓存该重定向,并在下次访问该对象时未命中我的服务器。

有没有人有任何其他的解决方案或想法如何实现这一目标?任何帮助,将不胜感激。

回答

0

根据您需要的准确程度,您也可以在客户端执行此操作。使用jQuery等,添加一个点击处理程序到a href标签,向控制器发出ajax请求,记录活动。

+0

我想到的是,这是可能的,但有些链接可能不是我的控制。 – HJ05

1

我会使用jQuery和谷歌分析。一类添加到您想要的歌曲,然后使用jQuery onclick事件处理为类似的各个环节:

<a href="[link]" onclick="__gaq.push(['_trackEvent', 's3-Bucket-Request', 's3-actual-bucket-name', 'current-page']);">link text</a> 

更换三个变量适当(“S3桶请求”,“S3-actual-桶名称“,”当前页面“)。如果你把jquery放在每个页面的头部,你有一个可重用的函数。

开始:

<a href="[link]" class="ga">link text</a> 

的jQuery:

$('.ga').attr("onclick", "__gaq.push(['_trackEvent', 's3-Bucket-Request', 's3-actual-bucket-name', 'current-page']);"); 

末:

<a href="[link]" class="ga" onclick="__gaq.push(['_trackEvent', 's3-Bucket-Request', 's3-actual-bucket-name', 'current-page']);">link text</a> 
+0

链接到S3上的视频时可能会出现问题:

+0

@ HJ05您需要适当地替换这三个变量('s3-Bucket-Request',' s3-actual-bucket-name“,”当前页面“) - 取决于您在Google Analytics中跟踪的内容 – amelvin