0

在 Azure 订阅中,我有一个包含多个已定义容器的存储帐户。目前,我的所有代码都使用连接字符串的主访问键来读取和写入容器的数据。所有容器都是私有的。我可以为存储帐户生成一个只读连接字符串,还是必须为每个容器定义它?

4

2 回答 2

3

如果您试图模仿文件系统的文件夹,那么您可能需要考虑在单个 blob 容器中创建虚拟目录,而不是创建超过 20 个单独的容器来表示文件夹。目录的使用在另一个 stackoverflow 问题中讨论:Windows Azure: How to create sub directory in a blob container以及Azure Storage Blobs Service Working with Directories。CloudBlobDirectory表示 blob 的 blob 目录,由分隔符指定。如果将所有目录放在一个容器中,则可以通过配置公共访问(例如匿名读取访问)、共享访问签名或存储访问策略来为该容器中的所有 blob(包括子目录中的 blob)设置一次访问权限 . 容器上的存储访问策略可能对您有用,因为它使您部署的 SAS 字符串能够被撤销、扩展或更新,而无需重新部署新字符串。

于 2013-04-24T17:02:54.463 回答
1

目前,无法为存储帐户创建只读连接字符串。从平台方面来看,您唯一的选择是使用Shared Access Signatures/Container Level ACL但您必须分别为每个 blob 容器执行此操作。其他选择是创建自己的应用程序,充当用户和存储帐户之间的代理。对您的存储帐户的所有请求都将通过此应用程序进行路由,您可以在其中合并此只读机制,您可以拒绝除 GET 之外的所有请求(用于只读行为)。

于 2013-04-24T02:00:39.523 回答