gpt4 book ai didi

azure - 每小时生成的 Azure Blob 存储 SAS key 数量是否有限制?

转载 作者:行者123 更新时间:2023-12-04 12:24:10 25 4
gpt4 key购买 nike

根据to this article详细说明了 Azure 存储的限制,可以发出的 Azure 资源管理器请求的数量有限制。

此外,this article ARM API 的详细限制。一个帖子here声称他们在发出太多请求后运行列表操作时遇到了问题。

我的问题是,每小时为 Blob 存储生成的 SAS key 数量是否有限制?创建 SAS key 是 ARM 事件吗?

例如,如果我使用 Python Azure 存储 SDK,并尝试在一小时内为各种 Blob(存储帐户中的容器中的文件)创建 160,000 个 SAS key ,我会受到限制或停止吗?

我的应用程序依赖这些 key 来允许微服务访问 protected 数据,但如果我无法在短时间内创建大量 SAS key ,我就无法扩展此应用程序。

最佳答案

创建 SAS token 根本不与 Azure Api 交互 -

来自Using shared access signatures

The SAS token is a string you generate on the client side A SAS token you generate with the storage client library, for example, is not tracked by Azure Storage in any way. You can create an unlimited number of SAS tokens on the client side.

我找不到构建存储 SAS token 的代码,但其原理类似于以下内容(来自 here)

private static string createToken(string resourceUri, string keyName, string key)
{
TimeSpan sinceEpoch = DateTime.UtcNow - new DateTime(1970, 1, 1);
var week = 60 * 60 * 24 * 7;
var expiry = Convert.ToString((int)sinceEpoch.TotalSeconds + week);
string stringToSign = HttpUtility.UrlEncode(resourceUri) + "\n" + expiry;
HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(key));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign)));
var sasToken = String.Format(CultureInfo.InvariantCulture, "SharedAccessSignature sr={0}&sig={1}&se={2}&skn={3}", HttpUtility.UrlEncode(resourceUri), HttpUtility.UrlEncode(signature), expiry, keyName);
return sasToken;
}

基本上,SAS token 是存储凭据的哈希值,这些凭据被锁定以提供服务子集。您可以根据需要创建任意数量,而无需与 Azure API 进行任何交互。

关于azure - 每小时生成的 Azure Blob 存储 SAS key 数量是否有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49782005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com