首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SAS URI访问blob时出现“身份验证失败”错误

通过SAS URI访问blob时出现“身份验证失败”错误
EN

Stack Overflow用户
提问于 2022-10-06 06:02:50
回答 1查看 83关注 0票数 0

我和我的团队正在使用NextJS开发一个web应用程序,最近我们实现了用于文件上传和显示的Azure。我目前正在为前端的图像显示工作。为此,我使用包含以下参数的generateBlobSASQueryParameters对象生成带有sasOptions函数的SAS令牌:

object)

  • expiresOn

  • 容器名

  • blob名称

  • startsOn (date

  • (date object)

  • permissions: BlobSASPermissions.parse("racwdt")

))

之后,im使用指定的blob名称和新生成的SAS令牌生成一个SAS URI。但是,当im试图访问sas URI时,im遇到了一个错误:

服务器无法验证请求。确保授权头的值是正确的,包括签名。RequestId:SOME_REQUEST_ID时间:2022-10-03T13:49:24.2788454Z签名字段格式不佳.签名:

代码语言:javascript
复制
https://mystorageaccount.blob.core.windows.net/images/example.png?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2022-11-22T20:45:23Z&st=2022-10-03T11:45:23Z&spr=https&sig=ECjnJEvZCOPhvuOgCsGBMIwone7VmsiJQopVNyb4yB0%3D?sv=2021-06-08&st=2022-10-06T06%3A24%3A12Z&se=2022-10-06T06%3A34%3A12Z&sr=b&sp=racwdt&sig=ioMMCIFo0eXC%2BTZ9yDZB9D5JHz%2F%2BUyMMFqTPEG0QSqg%3D

以下是无法进行身份验证的URL的参数:

代码语言:javascript
复制
sv=2021-06-08
ss=bfqt
srt=sco
sp=rwdlacupiytfx
se=2022-11-22T20:45:23Z
st=2022-10-03T11:45:23Z
spr=https
sig=ECjnJEvZCOPhvuOgCsGBMIwone7VmsiJQop

,在生成SAS以使其工作时,有什么我可以做或照顾的吗?

注意:当通过单击blob上的"Generate令牌和URL“按钮手动生成SAS URL时,我可以通过将其复制到浏览器中的url字段来访问图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-06 06:55:33

正如@Gaurav_Mantri所建议的, SAS令牌在我得到的SAS URL中出现了两次.

造成错误URL的代码:

代码语言:javascript
复制
 const sasToken = generateBlobSASQueryParameters(
      sasOptions,
      sharedKeyCredential
    ).toString();

    const blobSasUri = `${
    containerClient.getBlockBlobClient(blobName).url
    }?${sasToken}`;

在我看来,我已经为特定的blob生成了一个SAS令牌,然后使用

containerClient.getBlockBlobClient(blobName).url

我已经获得了完整的 blob (其中已经包含了标记)。之后,我再次将生成的SAS URL连接起来,因此得到了一个错误的URL。

Fix:

代码语言:javascript
复制
const sasToken = generateBlobSASQueryParameters(
  sasOptions,
  sharedKeyCredential
).toString(); // For generating the SAS token

const blobURL = containerClient.getBlockBlobClient(blobName).url;
// Afterwards, getting the full blob URL (with the new SAS token already concatinated to it)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73969243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档