Azure BLOB として発行されたソフトウェア インストーラーがあり、それがダウンロードされた回数をカウントする必要があります。
問題は、外部から (多くのダウンロード サイトから) 参照できるため、Web サイトから制御できないことです。
では、Windows Azure には、BLOB のダウンロードを検出したり、その数を登録したりするメカニズムはありますか? ありがとう!
コンテナをプライベートにすることを検討したことがありますか?これにより、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);
}
これが行うことは次のとおりです。
アプリケーションを介して署名付きのURLを配布することで、完全に制御でき、CAPTCHA、ダウンロードの支払い、アプリケーションの高度なアクセス許可などの他のシナリオを確認することもできます...