Azure generateSharedAccessSignature是否未添加sv参数?

Azure generateSharedAccessSignature是否未添加sv参数?,azure,azure-mobile-services,Azure,Azure Mobile Services,我正在尝试生成一个共享访问签名,并使用这里的代码()为自定义API生成SAS 调用“generateSharedAccessSignature()”时,似乎缺少sv=2014-02-14参数 SAS url在我尝试时似乎不起作用(获取400 xml无效错误),但如果我尝试从Azure Management Studio生成的SAS,则url包含“sv”参数,并在我尝试上载时起作用 有什么想法吗 基于共享访问签名中的,sv参数,在存储服务版本2014-02-14中引入。我猜Azure移动服务正在使

我正在尝试生成一个共享访问签名,并使用这里的代码()为自定义API生成SAS

调用“generateSharedAccessSignature()”时,似乎缺少sv=2014-02-14参数

SAS url在我尝试时似乎不起作用(获取400 xml无效错误),但如果我尝试从Azure Management Studio生成的SAS,则url包含“sv”参数,并在我尝试上载时起作用

有什么想法吗

基于共享访问签名中的,
sv
参数,在存储服务版本
2014-02-14
中引入。我猜Azure移动服务正在使用较旧版本的存储服务API,这就是您在SAS令牌中看不到
sv
参数的原因

因此,您可能会收到400个错误(无效XML)。在早期版本的存储服务API中,提交阻止列表的XML语法与当前使用的不同。我又有一个用户来到我的博客,抱怨同样的错误。请在执行提交阻止列表操作时尝试以下XML语法,并查看错误是否消失:

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <Block>[base64-encoded-block-id]</Block>
  <Block>[base64-encoded-block-id]</Block>
  ...
  <Block>[base64-encoded-block-id]</Block>
</BlockList>

[base64编码块id]
[base64编码块id]
...
[base64编码块id]

请注意,我们没有使用
Latest
节点。相反,我们使用的是
Block
节点。

将sv参数保留在外,并将其设置为PUT请求头的一部分,使用:

xhr.setRequestHeader('x-ms-version','2014-02-14')

您可以查看以下azure文件上载脚本示例:

…将与问题原始博客链接生成的SA一起使用-

在beforeSend中添加请求标头,如下所示:

beforeSend: function(xhr) {
    xhr.setRequestHeader('x-ms-version','2014-02-14');
},

嘿,Gaurav,我实际上是通过去掉sv参数并添加请求头作为xhr的一部分来实现的:xhr.setRequestHeader('x-ms-version','2014-02-14');因此,与其将其作为生成的SAS url的一部分,不如将其作为PUT头的一部分添加,实际上可以使SAS工作。不确定400 XML错误返回的原因,区块列表在这两种情况下都与上面的语法完全匹配。如果在区块列表XML中使用
元素,请将其更改为