Azure サブスクリプションには、複数のコンテナーが定義されたストレージ アカウントがあります。現在、私のコードはすべて、接続文字列のプライマリ アクセス キーを使用して、コンテナーへのデータの読み取りと書き込みを行っています。すべてのコンテナは非公開です。ストレージ アカウント用に読み取り専用の接続文字列を生成できますか? またはコンテナーごとに定義する必要がありますか?
2 に答える
ファイル システムのフォルダーを模倣しようとしている場合は、フォルダーを表すために 20 を超える個別のコンテナーを作成するのではなく、単一の BLOB コンテナー内に仮想ディレクトリを作成することを検討することをお勧めします。ディレクトリの使用については、stackoverflow の別の質問で説明されています: Windows Azure: How to create sub directory in a blob container and also Azure Storage Blobs Service Working with Directories . CloudBlobDirectoryクラス区切り文字で指定された BLOB の BLOB ディレクトリを表します。すべてのディレクトリを 1 つのコンテナーに配置する場合、代わりにパブリック アクセス (匿名読み取りアクセスなど)、共有アクセス署名、または格納されたアクセス ポリシーを構成することにより、このコンテナー内のすべての BLOB (サブディレクトリ内の BLOB を含む) に対して一度にアクセスを設定できます。 . コンテナに格納されたアクセス ポリシーは、新しい文字列を再展開することなく、展開する SAS 文字列を取り消し、拡張、または更新できるため、便利な場合があります。
現時点では、ストレージ アカウントの読み取り専用の接続文字列を作成することはできません。プラットフォーム側からは、Shared Access Signatures
/Container Level ACL
を使用するしかありませんが、各 BLOB コンテナーに対して個別に行う必要があります。その他のオプションは、ユーザーとストレージ アカウント間のプロキシとして機能する独自のアプリケーションを作成することです。ストレージ アカウントへのすべての要求はこのアプリケーションを介してルーティングされ、GET 以外のすべての要求を拒否するこの読み取り専用メカニズムを組み込むことができます (読み取り専用の動作のため)。