0

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

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

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

谢谢

4

1 回答 1

1

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

您可以使用 Windows Azure 网站:

  1. 您可以使用充当 Blob/表和队列服务外观的网站。这样您就可以控制访问这些服务的方式。您的远程客户端不会直接访问存储服务。
  2. 您可以使用网站来分发 SAS。这将允许您的客户直接访问存储服务,同时您的网站控制他们是否以及多长时间可以访问存储服务。但请记住,即使您分发 SAS 1 分钟,在那一分钟内,他们也可以使用 SAS 中定义的权限做任何他们想做的事情。如果您想做诸如验证之类的事情...,这对您来说不是最佳选择。

与工人角色相比,网站真的很便宜(甚至是免费的)。

于 2012-12-01T17:22:24.533 回答