11

Azure BLOB として発行されたソフトウェア インストーラーがあり、それがダウンロードされた回数をカウントする必要があります。

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

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

4

2 に答える 2

10

コンテナをプライベートにすることを検討したことがありますか?これにより、BLOBを直接ダウンロードできなくなります。これを行うことにより、ファイルをダウンロードできるユーザーと、ダウンロードできる期間を完全に制御できます。

登録済みのユーザーのみがファイルをダウンロードでき、ASP.NETMVCを使用していると仮定します。次に、次のようなアクションを実行できます。

    [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);
    }

これが行うことは次のとおりです。

  • Authorize属性は、ログインしているユーザーのみがこのアクションにアクセスできるようにします。
  • そのBLOBのダウンロード数を増やします
  • 名前に基づいてblobの参照を取得します
  • ブロブを1時間ダウンロードできる署名を生成します
  • 署名付きのblobのURLを返します(blobのURLにリダイレクトすることもできます)

アプリケーションを介して署名付きのURLを配布することで、完全に制御でき、CAPTCHA、ダウンロードの支払い、アプリケーションの高度なアクセス許可などの他のシナリオを確認することもできます...

于 2012-08-03T06:08:02.170 に答える
8

ストレージ分析を使用 して、ブロブのダウンロード数を把握できます。

BLOB の使用状況は、新しい管理ポータルでグラフとしても利用できます。

ここに画像の説明を入力

于 2012-08-03T08:20:22.223 に答える