2012-09-14 176 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