2012-08-03 11 views
6

私はAzureのブロブとして公開されているソフトウェアインストーラを持っており、ダウンロードされた回数をカウントする必要があります。Azure BLOBのダウンロードを検出またはカウントする方法は?

問題は、(多くのダウンロードサイトから)外部から参照できるため、ウェブサイトから制御できないということです。

Windows Azureには、BLOBのダウンロードを検出するメカニズムがありますか、それらのカウントを登録していますか? ありがとう!

+1

ブロブの使用量は、新しい管理ポータルでグラフとしても利用可能です(つまり、サービスの背後で抽象化されていない)一般的に利用可能なものは、Storage Metrics Logsです。 http://blogs.msdn.com/b/windowsazurestorage/archive/2011/08/03/windows-azure-storage-metrics-using-metrics-to-track-storage-usage.aspxをご覧ください。私はこれが正確にあなたが探しているものを得ることができるか分からない。 – MikeWo

+0

もちろん、それがサービスの背後にあるなら、あなたはそれを簡単に数えることができます。 BTWでは、ソフトウェアインストーラの場合、CDNを使用して経験を上げたいと思うかもしれませんが、あなたの仕事は難しくなります(ただし、サービスとCDNは引き続き使用できます)。このような音は今や野生であり、この段階ではサービスは実行可能ではありませんか? –

+0

@MikeWo - あなたはあなたのコメントを答えに移すべきです。 –

答えて

9

コンテナをプライベートにすることを検討しましたか?これは人々がブロブを直接ダウンロードするのを防ぎます。これを行うことで、ファイルをダウンロードできるユーザーと、これを実行できる期間を完全に制御できます。

登録ユーザーのみがファイルをダウンロードでき、ASP.NET MVCを使用しているとします。これは何が行うことは以下の通りである

[Authorize] 
    public ActionResult Download(string blobName) 
    { 
     CountDownload(blobName); 

     var blobClient = storageAccount.CreateCloudBlobClient(); 
     var container = blobClient.GetContainerReference(containerName); 
     var blob = container.GetBlobReference(blobname); 

     var sas = blob.GetSharedAccessSignature 
     (
      new SharedAccessPolicy 
      { 
       Permissions = SharedAccessPermissions.Read, 
       SharedAccessStartTime = DateTime.Now.ToUniversalTime(), 
       SharedAccessExpiryTime = DateTime.Now.ToUniversalTime().AddHours(1) 
      } 
     ); 

     return Content(blob.Uri.AbsoluteUri + sas); 
    } 

  • 承認属性は必ずログインしているユーザーのみがこのアクションにアクセスすることができます、あなたは、この1と同様の作用を持つことができます。
  • あなたはあなたがあなたがブロブのURLを返す1時間
  • のためのブロブをダウンロードすることができます署名を生成名前
  • に基づいてブロブの参照を取得しているブロブ
  • のダウンロード数を増やします署名(あなたも、それはブロブのURLにリダイレクトする可能性があり)

アプリケーションを通じて署名付きURLを配っすることにより、あなたが完全に制御を持っていてもダウンロードを払って、CAPTCHAのような他のシナリオを見ることができ、高度でアプリケーションのアクセス許可、...

+0

私が気づいたよりも完全です。ありがとう! –

+0

'DateTime.UtcNow'を使うことができます。また、開始時刻を指定する必要もありません(クロックスキューについては注意してください)。 – nmit026

6

あなたのブロブが持っていたどのように多くのダウンロードを把握するstorage analyticsを使用することができます。あなたはBLOBを持っている場合は

enter image description here

+0

ストレージアナリティクス(BLOB IDごとの合計リクエスト)は、API経由で何とか利用できますか?私は、報告目的のためだけにBLOBのダウンロード数を問い合わせることに興味があります。 – kzu

関連する問題