2016-10-05 25 views
2

Azure Mobile Servicesを使用するiOSアプリケーションの読み取り専用共有アクセス署名を生成するためにAPI(node.js)を使用しています。 APIは、私は1つのコンテナにアクセスするためにSASをしたいときには、素晴らしい作品全ストレージアカウントのAzure共有アクセス署名

var azure = require('azure-storage'); 
var blobService = azure.createBlobService(accountName, accountKey); 
var sas = blobService.generateSharedAccessSignature("containerName", null, sharedAccessPolicy); 

...次のコードを使用してSASを生成します。しかし、私は本当にストレージアカウントのすべてのコンテナにアクセスする必要があります。私は明らかに各コンテナのための別々のAPI呼び出しでこれを行うことができますが、これは何百もの追加呼び出しを必要とします。

解決策はどこからでも見つけられましたが、何もできません。ストレージアカウントのすべてのコンテナに対してSASを生成する方法があるかどうかを知っていますか?

答えて

1

あなたが指定して取得アカウントレベルSAS、構築することができます。

  • サービス(ブロブ、テーブル、キュー、ファイル)
  • リソースへのアクセス(例えばコンテナが削除&を作成する)
  • を含めるようにします
  • 権限(例えば、読み取り、書き込み、リスト)
  • プロトコル(例えばHTTPSのみ、対HTTP + HTTPS)

サービス固有のSASと同様に、有効期限(およびオプションで開始日)を指定する必要があります。

あなたのユースケースを考えれば、あなたのアカウントのSASはになります。ブロブの場合はになります。不要なサービス(あなたの場合はテーブル/キュー/ファイル)を含める必要はありません。

詳細はhereと記載されています。

+0

Davidさん、ドキュメントに従っていますが、「署名が一致しませんでした。使用する署名文字列は_acountname \ nrl \ nb \ nsc \ n \ n2016-10-09 \ n \ n \ n2015- 04-05 \ n "_。私が生成するトークンは、ストレージアカウント内のコンテナからブロブを取得するためのURLは "https:// accountname"であり、sv = 2015-04-05&ss = b&srt = sc&sp = rl&se = 2016-10-09&sig = 7rdQIGkIwK + X01Q0YqFdFDGt8Li1SQt0u2riuSCyQZM = .blob.core.windows.net/containername/blobname?srt = sc&se = 2016-10-09&api-version = 2015-04-05&sp = rl&ss = b&sv = 2015-04-05&sig = 7rdQIGkIwK%2BX01Q0YFFDFDGt8Li1SQt0u2riuSCyQZM%3D "私が間違っていることを知っていますか? – Benzene

関連する問題