ASP.NET对AmazonS3对象的日志请求



我已经将一些对象放在S3存储桶中,每次客户端向其中一个对象发出请求时,我都希望进行日志记录。

我使用Umbraco4.8作为后台,运行一些自定义代码。

我提出的解决方案:

  1. 设置指向ASP页面的链接,该页面从S3中提取对象并将其作为响应发送回。我看到的问题是,客户端必须等待ASP加载文件,然后才能开始下载文件。

  2. 设置指向ASP页面的链接,该页面记录请求并返回响应。重定向至S3对象。对我来说,这似乎是一个不必要的重定向,客户端可能会缓存该重定向,下次访问该对象时不会访问我的服务器。

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

我会使用jquery和谷歌分析。为要跟踪的每个链接添加一个类,然后使用jquery将onclick事件操作为类似于的内容

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

适当替换三个变量("3-Bucket-Request"、"s3实际存储桶名称"、"当前页面")。如果您将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>

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

最新更新