2017-04-25 15 views
0

GetSaSForBlobContainer(コンテナ、SharedAccessBlobPermissions.List | SharedAccessBlobPermissions.Read);Azure SASおよび許可

public static string **GetSaSForBlobContainer**(CloudBlobContainer blobContainer, SharedAccessBlobPermissions permission) 
    { 
     var sas = blobContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy() 
     { 
      Permissions = permission, 
      SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5),//SAS Start time is back by 5 minutes to take clock skewness into consideration 
      SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15), 
     }); 
     return string.Format(CultureInfo.InvariantCulture, "{0}{1}", blobContainer.Uri, sas); 
    } 

- 私はこれをしようとすると、私のstrogeアカウントで私のコンテナへのアクセスは、私がInternet Explorerでコンテナ内のブロブをリストアップprivate.Canのですか?

AuthenticationFailed サーバーは要求を認証するために失敗しました:私は常にインクルードが失敗ブロブとコンテナアクセスタイプにしてみてください。 Authorizationヘッダーの値が署名を含めて正しく構成されていることを確認します。 RequestId:2c504f81-0001-00ea-3815-be7271000000時間:2017-04-25T22:47:20.9382490Z 署名が一致しませんでした。 38:15Z 2017-04-25T22:58:使用に署名するための文字列は、RL 2017-04-25T22た15Z /ブロブ/ onlineeducation/$ルート2015年12月11日

しかし、私はこの私をしようとすると、 )

foreach (IListBlobItem blob in blobs) 
{ 
    CloudBlockBlob blob1 = new CloudBlockBlob(blob.Uri); 
    string name = blob1.Name; 

} 

1-、ブロブを見ることができる私はGetSaSForBlobContainerを作成するときに一つのことを理解しないと、私のコンテナのアクセスタイプは、()Internet Explorerとコードのために何が起こるかプライベートで?。

2)私は私のプライベートコンテナを参照せずにリファレンスを取得し、次にblob uri + SASを作成します。または私は参照されたBLOBのみを書くことができます(私のBLOB権限は書き込みのみです)。

3 - 何が起きるかコンテナuri + sas - BLOB uri + sas(権限が読み込まれます)=> Internet Explorerで試してみると、コンテナが見えますか?ここでは異なるとは何

4-)、

  • 私のコンテナのアクセスタイプは、私がどのPERMSSIONとSASなしcontiner の参照を取得した後、ブロブURIを作成し、私の記憶でプライベートですr ead permssionとSASです。

  • コンテナのアクセスもタイプは、私がPERMSSIONおよびSASとコンテナの参照を取得し、その後読み取りPERMSSIONでブロブURIを作成し、私の記憶でプライベートあると

+1

「Explorer」の意味を詳しく教えてもらえますか? MicrosoftのAzure Storage ExplorerまたはInternet Explorer(ブラウザ)を意味しますか? –

+0

はい、私は今編集しています:) –

答えて

2

SAS私はこれを試して、私のストローブアカウント内の私のコンテナのアクセス プライベートです。私は、Internet Explorerでコンテナ内のBLOBをリストできますか?私は失敗するが、この問題を解決する最初のあなたのSASでの権限としてListを追加してください、その後、あなたの要求のURLに&restype=container&comp=listを追加するには、常に

でブロブとコンテナのアクセスタイプにしてみてください 。この問題の詳細については、Azure Shared Access Signature - Signature did not matchのスレッドを参照してください。

1 - )私はGetSaSForBlobContainer 作成するときに一つのことを理解しないと、私のコンテナのアクセスタイプは、()、インターネット Explorerとコードのために何が起こるかプライベートで?

あなたが何かをしなければ何も起こりません:)。 SASに含まれる権限に応じて、このSAS URLを所有しているユーザーは特定の操作を実行できます。たとえば、ListパーミッションのSASを作成した場合、ユーザはそのコンテナ内のBLOBのみをリストすることができます。彼らはブロブをダウンロードすることさえできません(SASにはRead許可が必要です)。

2-)私は許可なしに参照私のプライベートコンテナを取得し、 はその後、ブロブURI +を作成SAS.Example私は私の コンテナを見ることができますが起こるのだろうか? SASは、容器のみのためであるとして、または私は(私のブロブ許可 のみ書き込みである)参照ブロブを書くことができます。..

いいえ、あなたはあなたのコンテナを参照することはできません。あなたにはRead権限が含まれているため、ブロブの内容のみを読むことができます。ブロブをアップロードすることはできません。

3 - 何が起こるだろう、コンテナURI + SAS - ブロブURI + SAS(パーミッション が読み込まれた)=>私は、ファイルをアップロードすることができますまたはInternet Explorerにしようとしたとき、私はコンテナ を見ることができます。

いいえ、Readの許可ではファイルをアップロードできません。あなたはReadの許可でブロブリストを見ることさえできません。このためには、アクセス許可Listが必要です。

#4については、実際にそのSAS URLを使用するまでは違いはありません。第1のケースではエラーが発生し、2番目のケースではブロブを見ることができます。

+0

あなたの答えはすべて貴重です。私はあなたに感謝しています4 - 私のコンテナのアクセスタイプは私の記憶装置にプライベートです 私はpermsionおよびSASなしでcontinerの参照を取得します。 次に、read permssionとSASでblob URIを作成します。 =>私はここで私のBLOBにしか行くことができないと読む許可のために をダウンロードすることができますが、BLOB(ダウンロード可能なBLOB)のコンテナを見ようとすると、私はコンテナを見ることができません。 (私はBLOBパーミッションとSAS、許可なしでコンテナ を作成し、SASなしで見ることができます) –

関連する問題