Windows Azure - 直接使用存储服务运行来自远程客户端的操作的逻辑

时间:2012-12-01 16:44:44

标签: azure azure-storage azure-table-storage azure-storage-blobs

设计Azure应用程序,其中远程客户端将以~1写/秒的频率“流式传输”数据/图像。数据将转到表存储,图像将转到blob存储。

我可能希望在接受这些写入之前运行逻辑。例如,在出现错误或篡改或其他支持操作(如缩略图,服务总线使用或其他任何操作)时限制写入频率或验证数据。

一种选择是通过在worker角色上运行的REST服务来管道所有操作。此服务会将数据推送到存储,并执行所需的操作。但是,考虑到客户端可以直接访问存储服务(保护访问的共享访问签名),这似乎是一个不必要的瓶颈,尽管可以更多地旋转。此外,如果有机会将这种逻辑推到其他地方,那么担任角色会增加成本。

由于

1 个答案:

答案 0 :(得分:1)

如果您的远程客户端具有有效的SAS,他们可以根据SAS中的定义(读取,写入,删除,...)对资源执行任何他们想要的操作。无法在存储级别添加任何额外的逻辑。

您可以使用Windows Azure网站:

  1. 您可以使用一个网站作为Blob / Table& amp;的外观。队列服务。这样您就可以控制如何访问这些服务。您的远程客户端不会直接访问存储服务。
  2. 您可以使用网站分发SAS。这将允许您的客户端直接访问存储服务,同时您的网站控制他们访问存储服务的时间和长度。但请记住,即使您分发SAS 1分钟,在那一分钟内,他们也可以使用SAS中定义的权限做任何他们想做的事情。如果你想做验证等......,这对你来说不是最好的选择。
  3. 与工作者角色相比,网站非常便宜(甚至免费)。