如何对 Azure 存储帐户进行限速?

如何对 Azure 存储帐户进行限速?

我有一个 Azure 存储帐户,其中托管了 20 MB 的文件。用户直接从存储帐户下载文件,没有 CDN 或任何监控流量的东西。我担心用户可能会下载大量数据,从而导致我们产生高昂的出口成本。我最好使用一种成本低于我们使用这种服务所节省的金额的服务。

我想要用两种方法来解决这个问题:

  1. 将 IP 每天的下载次数限制为 50 次。这是理想的,但可能需要一些时间来设置。
  2. 将 IP 限制为合理的速率,例如每秒 5 个。这听起来像是 Azure DDoS Protection 旨在实现的功能,尽管这项服务的成本很高。

是否有一个好的解决方案可以让我们限制 Azure 存储帐户的下载速率?

Cloudflare 的免费套餐是否适合这种用例?

答案1

我建议查看共享访问签名 (SAS)。虽然这些不能限制带宽,但您可以设置到期时间。我设想在前端执行某种应用程序,要求用户在下载之前注册和/或进行 CAPTCHA 以消除机器人下载。然后,应用程序将创建一个近期到期的 SAS 令牌,该令牌基本上允许用户仅下载一次该项目。

为存储帐户配置 SAS 过期策略。SAS 过期策略指定 SAS 有效的建议间隔。SAS 过期策略适用于服务 SAS 或帐户 SAS。当用户生成的服务 SAS 或帐户 SAS 的有效间隔大于建议间隔时,他们会看到警告。如果启用了 Azure Monitor 的 Azure 存储日志记录,则会将条目写入 Azure 存储日志。要了解详细信息,请参阅为共享访问签名创建过期策略。

https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview

答案2

您无法在写入时限制下载。您需要为存储帐户的读取操作和网络传输(下载)付费 - 两种不同的服务。

检查存储成本: 存储帐户定价

也许您应该根据您的情况使用不同类型的资源 - ftp?

相关内容