2017-02-10 13 views
0

プライベートAzureブロブストレージにユーザーをリダイレクトすることが可能です HttpResponseMessageプライベートAzureブロブストレージ

asp.net

を使用してAPIの開発にリダイレクト? SASキーや紺碧のBlob SDKを使用してこれを行うことはできますか?

例えば私はこのような何かをしたい:

var response = Request.CreateResponse(HttpStatusCode.Moved); 
response.Headers.Location = new Uri(bloburl); 
return response; 

は、それがURLにキーを置くことによってプライベートブロブにアクセスすることは可能ですか?明らかに私はマスターキーを入れたいとは思わない。

答えて

1

ユーザーを専用の空白のBLOBストレージにリダイレクトすることはできますか? 私はこれをSASキーまたは紺のBLOB SDKを使って行うことができますか?

はい、完全にプライベートブロブにリダイレクトできます。少なくともReadの権限を持つShared Access Signature (SAS)を作成し、そのSASトークンをblob URLに追加し、そのURLにリダイレクトする必要があります。

あなたのコードは次のようになります:

 var cred = new StorageCredentials(accountName, accountKey); 
     var account = new CloudStorageAccount(cred, true); 
     var client = account.CreateCloudBlobClient(); 
     var container = client.GetContainerReference("container-name"); 
     var blob = container.GetBlockBlobReference("blob-name"); 
     var sasToken = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() 
     { 
      Permissions = SharedAccessBlobPermissions.Read, 
      SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1)//Assuming you want the link to expire after 1 hour 
     }); 
     var blobUrl = string.Format("{0}{1}", blob.Uri.AbsoluteUri, sasToken); 
     var response = Request.CreateResponse(HttpStatusCode.Moved); 
     response.Headers.Location = new Uri(bloburl); 
     return response; 
+0

これは私が必要なものだけ素晴らしい感謝、です。私は、BLOB URLにSASキーを追加し、そのように参照することができるかどうかはわかりませんでした。私は実装しようとした後に報告します。 – Jaked222

+0

簡単な質問:すべてのBLOBリクエストに対してパフォーマンス上の理由から新しいSASキーを作成することには欠点はありますか?また、アプリケーションはこのAPIを使用してBLOBリンクを介して1つの画像をダウンロードするだけなので、1分で各リンクの有効期限が切れても問題ありません。同じBLOBの2回目のリクエストでも新しいSASキーが作成されると思います。 – Jaked222

+0

'すべてのBLOBリクエストに対して新しいSASキーをパフォーマンス面で作成することには欠点はありますか? ' - 私は考えることができない。 SASキーの作成はネットワークコールを行わないので、ネットワークやIOオーバーヘッドはありません。 –

関連する問題