在 Windows Azure 中,可以创建公共 Blob 容器。匿名客户端可以通过 REST API 访问这样的容器。
是否也可以创建一个可公开访问的队列?
创建容器操作的文档解释了如何x-ms-blob-public-access
为 Blob 容器指定公共访问级别(使用 HTTP 标头)。但是,创建队列操作的文档没有列出类似的选项,这让我相信这是不可能的——但我真的很想得到纠正:)
目前,无法公开 Azure 队列。
正如您所注意到的,这种“隐私”是通过要求在 RE: 中对队列进行的所有存储 API 调用来强制执行的,以使用来自您的密钥的签名请求进行身份验证。Blob 存储中没有类似于公共容器的“公共”概念。
这将遵循最佳实践,因为即使在云中,您也不希望将基础架构的内部暴露给外部世界。如果您想实现此功能,您可以在队列顶部公开一个非常薄/简单的“层”应用程序。Web 角色中的简单 WCF REST 应用程序可以向您的消费者公开排队操作,但在内部处理 api 请求的签名,因此您不需要公开队列。
没错,Azure 存储队列不会像 blob (Uris) 那样公开访问。但是,您仍然可以使用 appfabric 服务总线实现可公开使用的消息传递基础架构。
我认为最好的选择是设置一个工作角色并以这种方式公开提供对队列的访问权限。可能使用 AppFabric 服务总线与外部源进行额外的连接/交互。
? 否则 - 不太清楚范围可能是什么。此时队列本身似乎已被锁定。:(