如何通过Postman对Azure Table Storage执行批量插入操作?
Azure Table Storage 实体组事务批量操作问题排查及正确示例
排查到的错误点
- 请求URL存在语法错误:包含多余的双引号转义符
%22,SASToken前缀sp==存在双等号语法错误,需替换为合法的有效SASToken - 请求Body中存在空的无效changeset块,无实际请求内容
- 第一个插入请求的
Content-Length字段包含多余方括号,需删除方括号直接填写实际JSON字节长度,也可省略该字段由Postman自动计算 - Batch边界未正确闭合,末尾缺少batch结束标识的两个横杠
- 缺少必填的
x-ms-version请求头,用于指定Azure存储服务版本
正确请求示例
1. 请求URL
https://azautomationdiag.table.core.windows.net/$batch?<替换为你有权限的有效SASToken>
2. 请求头
- Content-Type:
multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce - x-ms-version:
2019-02-02 - DataServiceVersion:
3.0;NetFx - MaxDataServiceVersion:
3.0;NetFx - Accept:
application/json;odata=minimalmetadata
3. 请求Body
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977 --changeset_8a28b620-b4bb-458c-a177-0959fb14c977 Content-Type: application/http Content-Transfer-Encoding: binary POST https://azautomationdiag.table.core.windows.net/InstalledApplications HTTP/1.1 Content-Type: application/json Accept: application/json;odata=minimalmetadata DataServiceVersion: 3.0; {"PartitionKey":"Channel_19", "RowKey":"1", "Rating":9, "Text":".NET..."} --changeset_8a28b620-b4bb-458c-a177-0959fb14c977 Content-Type: application/http Content-Transfer-Encoding: binary POST https://azautomationdiag.table.core.windows.net/InstalledApplications HTTP/1.1 Content-Type: application/json Accept: application/json;odata=minimalmetadata Prefer: return-no-content DataServiceVersion: 3.0; {"PartitionKey":"Channel_19", "RowKey":"2", "Rating":9, "Text":"Azure..."} --changeset_8a28b620-b4bb-458c-a177-0959fb14c977-- --batch_f351702c-c8c8-48c6-af2c-91b809c651ce--
额外注意事项
- 实体组事务内所有操作必须针对同一个分区的同一个表
- 单个事务最多支持100个实体,总payload大小不能超过4MB
内容的提问来源于stack exchange,提问作者SamTn
相关产品推荐
相关产品推荐

