使用 CORS 并与 Azure Table 存储通信时如何处理延续令牌?

How to handle continutation tokens when using CORS and talking to Azure Table Storage?

我们正在尝试通过 CORS 查询 Azure Table 存储 table,并且需要检索超过 1000 个实体。请求发送到一个分区键,但范围在行键上,就像这样(URL 被分解以便于阅读):

https://cloudmonixxxxxx.table.core.windows.net/ResourceMetric10MinSummaryEntity201506? sv=2014-02-14

&tn=ResourceMetric10MinSummaryEntity201506

&spk=a9c3c851-b8d7-4136-9783-20c08e89b897_eb2038bf-94bd-4005-aafd-3a2124a1560c_1aab823f-3d23-4a8a-b715-203d271156aa

&srk=00000002519673047999999999_00000000-0000-0000-0000-000000000000

&epk=a9c3c851-b8d7-4136-9783-20c08e89b897_eb2038bf-94bd-4005-aafd-3a2124a1560c_1aab823f-3d23-4a8a-b715-203d271156aa

&erk=00000002519673917999999999_ffffffff-ffff-ffff-ffff-ffffffffffff

&sig=6xxxxxxxxxxxxx..xxxxxxxxxxxxr

Table 存储 returns 1000 个实体和相关的延续标记作为响应 headers:

Access-Control-Expose-Hea...: x-ms-request-id,Server,x-ms-version,X-Content-Type-Options,Cache-Control,x-ms-continuation-NextPartitionKey,x-ms-continuation-NextRowKey,Content-Type x-ms-continuation-NextPar...: 1!148!YTljM2M4NTEtYjhkNy00xxxxxxxxxxxxxMjAzOGJmLTk0YmQtNDAwNS1hYWZkLTNhMjEyNGExNTYwY18xYWFiODIzZi0zZDIzLTRhOGEtYjcxNS0yMDNkMjcxMTU2YWE- x-ms-continuation-NextRow...: 1!84!MDAwMDAwMDI1MTk2NzM0NxxxxxxxxxxxxxWFiYjgtNzRiMi00ZWNmLTgzMjMtNzg2ZGM1NjdkNThh x-ms-request-id: a528c9be-0002-008d-1f1b-ad8a6b000000 x-ms-version: 2014-02-14

根据这篇文章 https://msdn.microsoft.com/en-us/library/azure/dd135718.aspx 我们正在形成继续请求。但是,当我们发出如下所示的继续请求时(为了便于阅读而分解),响应返回为 ResourceNotFound

https://cloudmonixxxxxxxxxx.table.core.windows.net/ResourceMetric10MinSummaryEntity201506?

NextPartitionKey=1!148!YTljM2M4NTEtYjhkNy00MTM2LTk3ODMtMjBjMDhlODliODk3X2ViMjAzOGJmLTk0YmQtNDAwNxxxxxxxxxxxxxxxxxxiODIzZi0zZDIzLTRhOGEtYjcxNS0yMDNkMjcxMTU2YWE-

&NextRowKey=1!84!MDAwMDAwMDIxxxxxxxxxxxxxzgyMWFiYjgtNzRiMi00ZWNmLTgzMjMtNzg2ZGM1NjdkNThh

有什么建议吗?

您收到 ResourceNotFound 错误的原因是您的第二个请求未在请求中包含 SAS 令牌。所以你的第二个请求 URL 应该是你的第一个请求 URL + NextPartitionKey + NextRowKey:

https://cloudmonixxxxxx.table.core.windows.net/ResourceMetric10MinSummaryEntity201506?<sas-token-parameters>&NextPartitionKey=<next-partition-key>&NextRowKey=<next-row-key>

试一试,应该可以。