使用 SAS-URI 从 R 连接到 Azure Blob 存储 "only"

Connecting to Azure Blob Storage from R with SAS-URI "only"

我正在尝试使用“AzureStor”包连接到 Azure Blob 存储。我的存储帐户只有一个 SAS URI。

收到消息:“错误请求 (HTTP 400)。无法完成存储服务操作。消息:InvalidUri。请求的 URI 不代表服务器上的任何资源。”

在 Microsoft Azure 存储资源管理器中,URI 有效。

这是我的代码

library(AzureStor)

end_point <- blob_endpoint("https://storagename.blob.core.windows.net/myname/",
                      sas = "sv=2018-xxxx0SCdi8aO6%2FyYzT0dHHPca0KhyNrFHtE%3D")

list_blob_containers(end_point)

我认为您收到此错误是因为您正在尝试使用 blob 容器 URL 列出 blob 容器。

请尝试将您的代码更改为:

library(AzureStor)

end_point <- blob_endpoint("https://storagename.blob.core.windows.net/",
                      sas = "sv=2018-xxxx0SCdi8aO6%2FyYzT0dHHPca0KhyNrFHtE%3D")

list_blob_containers(end_point)

请注意,使用 SAS 令牌列出 blob 容器需要您在 Service 级别获得具有 list 权限的 Account SAS 令牌。至少,您的 SAS 令牌应具有:

签名服务 (ss):Blob 服务 (b)

已签名的资源类型 (srt):服务 (s)

已签署权限 (sp):列表 (l)

如果没有这些,您的列表 blob 容器操作将失败。