ResourceNotFound 使用 InsertOrMerge:Azure 表存储 REST API
Posted
技术标签:
【中文标题】ResourceNotFound 使用 InsertOrMerge:Azure 表存储 REST API【英文标题】:ResourceNotFound using InsertOrMerge : Azure Table Storage REST API 【发布时间】:2022-01-06 21:11:25 【问题描述】:对于 insertOrMerge,我知道我们应该:
If-Match,从标头中排除 发送合并请求
我正在授权在 url 中使用 SAS
飞镖代码:
String _urlString = '$endpoint($id)?$sas';
var url = Uri.parse(_urlString);
var request = http.Request('MERGE', url);
request.header =
"Accept": "application/json;odata=nometadata",
"x-ms-date": DateTime.now().toUtc().toString(),
"x-ms-version": "2020-10-02",
"content-type": "application/json; charset=utf-8",
;
request.body =
PartitionKey: 'new key',
RowKey: 'mykey'
;
request.send();
我错过了什么? 知道合并和更新对我来说很好,但对于 insertOrMerge 和 insertOrUpdate 都不是
【问题讨论】:
我这里还有一个注意事项:将“x-ms-version”设置为最新版本时:2020-12-06 它抱怨无法解析标题!但是所有以前的版本都没有问题??!! 你可以试试下面的 request.body = "PartitionKey": "new key", "RowKey": "mykey" ; 我看不懂你要说什么!! 正文中的键值对应该用引号引起来 非常感谢!我听从了你的建议,但并没有解决问题。而是它让我找到了它,请参阅我的回答。它适用于单引号和双引号。 【参考方案1】:String _urlString = Uri.encodeFull('$endpoint($id)') + '?$sas';
这完成了工作,问题是 url 中有未编码的字符
编码 sas 修改它;所以它失败了 AuthenticationFailed 不在 URL 的前半部分(作为一个整体)使用 encodeFull;因输入无效而失败【讨论】:
以上是关于ResourceNotFound 使用 InsertOrMerge:Azure 表存储 REST API的主要内容,如果未能解决你的问题,请参考以下文章
为 Azure 存储帐户创建专用终结点连接时出现 ResourceNotFound 错误
SQL SERVER 分页查询 和 Inser 添加并返回Id
来自 PUT 的 Azure Blob 存储文档中的“404 资源未找到”
Attribute "resultType" must be declared for element type "update" or "inser