提问人:MaskofIllusion 提问时间:11/17/2023 最后编辑:MaskofIllusion 更新时间:11/22/2023 访问量:74
如何在 R 中使用带有“sp”前缀的 AzureStor 生成有效的 sas 令牌?
How to generate a valid sas token with AzureStor in R with "sp" prefix?
问:
我一直在尝试使用以下代码生成有效的 sas 令牌。 并且肯定已经被我自己和其他几个人仔细检查过了。出于某种原因,当我通过此过程创建令牌时,我会得到一个以开头的令牌,但是当我在门户上生成它时,我会得到一个以 .storage_account_name
storage_account_key
sv
sp
我尝试过用 etc 更改日期,但即使是文档也表明这是可以接受的,所以我不确定还有什么其他参数或输入应该有所不同。有谁知道我在生成有效的 sas 令牌时缺少什么?as.POSIXct
Sys.Date()
library(AzureStor)
sas_token <- get_service_sas(
account = config[["storage_account_name"]],
resource = resource_name,
key = config[["storage_account_key"]],
service = "blob",
permissions = "r",
resource_type = "b",
protocol = "https",
start = Sys.time(),
expiry = Sys.time() +1
)
答:
0赞
SPT
12/5/2023
#1
同意 @Gaurav Mantri 如果在使用 SAS 令牌时未遇到任何错误,则 SAS 令牌有效。
根据本文档,在存储帐户 SAS 令牌中,有两种类型。
- 帐户 SAS:由存储帐户密钥保护的帐户 SAS 授权访问存储服务的资源。它支持委派对 Blob 容器、表、队列和文件共享的读取、写入和删除等操作。可以通过
get_account_sas
调用获取帐户 SAS 来实现类似于用户委派 SAS 的访问。 - 服务 SAS:与帐户 SAS 相比,服务 SAS 提供更精确的访问控制。它支持创建 SAS 令牌,以独占方式授予对容器中指定 blob 或文件共享中文件的访问权限。若要生成服务 SAS,可以使用
get_service_sas
调用。
还可以在门户中签入门户:在门户中为帐户生成 SAS 令牌时,它将提供以开头的 SAS 令牌,而当你为任何特定容器生成令牌时,它将提供以开头的 SAS 令牌sv
sp
您可以尝试按照上述文档生成带有get_account_sas
的 SAS 令牌。
get_account_sas("mystorage", "access_key", start=Sys.Date(), expiry=Sys.Date() + 7)
0赞
SumanthMarigowda-MSFT
12/8/2023
#2
字符串中各部分的顺序 sv=&ss=&srt=&...&sig= 没关系。重要的是每个部分的价值。您可以在此处看到 C++ SDK 也像 R SDK 一样首先返回 sv。
我建议将 SDK 生成的值与 Azure 上生成的值之间的 ss、srt、sp 部分进行比较,可能是参数设置不正确。
评论