如何在Angular中为Azure blob容器生成SAS令牌?

问题描述 投票:0回答:1

我正在使用.net核心应用程序为具有私有访问级别的Azure blob容器生成SAS(共享访问签名)令牌,并且工作正常。

代码:

private static string GetContainerSasUri(CloudBlobContainer container, string storedPolicyName = null)
{
  string sasContainerToken;

  if (storedPolicyName == null)
  {          
     SharedAccessBlobPolicy adHocPolicy = new SharedAccessBlobPolicy()
     {
         SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-1),
         SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(2),
         Permissions = SharedAccessBlobPermissions.Read
     };

     sasContainerToken = container.GetSharedAccessSignature(adHocPolicy, null);
   }
   else
      sasContainerToken = container.GetSharedAccessSignature(null, storedPolicyName);


    return container.Uri + sasContainerToken;
}

现在,我想使用Angular(生成SAS令牌)执行相同的操作。我已经在Google上进行了搜索,发现了一些链接,但是都没有一个详细解释。反正有这样做吗?

angularjs angular asp.net-core azure-storage-blobs azure-blob-storage
1个回答
1
投票

现在,我想使用Angular(生成SAS令牌)执行相同的操作。我有用谷歌搜索并找到了一些链接,但是没有一个解释详情。反正有这样做吗?

简单的答案是不,您不能从客户端库(例如Angular)创建SAS令牌。好吧,从技术上讲您可以,但是创建SAS令牌需要存储帐户密钥,而从客户端创建它意味着您将向使用应用程序的每个人公开存储帐户密钥。

更好的选择是对后端服务进行API调用,并让该服务为您创建SAS令牌。这样,您就可以确保帐户密钥的安全。

© www.soinside.com 2019 - 2024. All rights reserved.