【问题标题】:How to add Authorization header in azure blob storage?如何在 azure blob 存储中添加授权标头?
【发布时间】:2018-03-24 00:12:36
【问题描述】:

我想使用其 JavaScript 客户端库将视频上传到 Azure Blob 存储。我有来自 API 的 SAS 令牌,并且我为 blob 服务创建了一个实例,如下所示:

var blobUri = 'https://<account>.blob.core.windows.net/';
vm.sasTOken = "?sv=2016-05-31&sr=c&sig=abcdefghhi&st=2017-10-12T07%3A10%3A05Z&se=2017-10-12T11%3A10%3A05Z&sp=rl"
var blobService = AzureStorage.createBlobServiceWithSas(blobUri, vm.sasToken);

我已尝试使用此服务上传视频

speedSummary = blobService.createBlockBlobFromBrowserFile('containerName', vm.file.name, vm.file, { blockSize: customBlockSize}, function (error, result, response) {
   if (error) {
      console.log(error);
    } else {
      console.log('success');
    }
  });

我不知道在哪里传递授权标头,这就是为什么它在控制台中给我错误的原因。

403(服务器验证请求失败。确保 Authorization 标头的值格式正确,包括签名。)

【问题讨论】:

  • 您能分享一下您的 SAS 令牌是什么样的吗?您很可能拥有无效的 SAS 令牌。
  • 像这样 ?sv=2016-05-31&sr=c&sig=rtPk88o2Y%2BpgFSk6JlJX8dPVUfx%2FhSfXkhQEDgyAn%2F8%3D&st=2017-10-12T06%3A55%3A09Z&se=2017-5%-2T 3A09Z&sp=rl
  • 谢谢!为了在 blob 容器中上传文件,SAS 令牌应具有Write 权限。从您共享的 SAS 令牌中,您似乎只包含了 ReadList 权限。请创建具有Write 权限的 SAS 令牌,然后重试。
  • @GauravMantri 我检查的令牌中已经存在写权限。
  • 您能否编辑您的问题并包括以下内容:1)blobUri 的值(您可以用虚拟字符串替换实际帐户名称 2)containerName 的值您传入createBlockBlobFromBrowserFile函数和 3) 从 API 返回的 vm 变量的值。您可以将 SAS 令牌中的实际签名值替换为虚拟字符串。

标签: javascript angularjs azure azure-storage


【解决方案1】:

还有一件事:

SAS 令牌中的 startexpiry 日期/时间应该是 UTC 时间,而不是本地时间。

请更新 SAS 令牌并确保这些值不超出 UTC 日期/时间的有效范围。

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2021-09-24
    • 2017-10-04
    • 2021-12-15
    • 2021-08-15
    • 1970-01-01
    相关资源
    最近更新 更多