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

101 views Asked by At

We're attempting to query an Azure Table Storage table thru CORS and need to retrieve more than 1000 entities. Requests go out to one partition key but with the range on row keys, like so (URLs are broken up for easier reading):

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 storage returns 1000 entities and relevant continutation tokens in response 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

According to this article https://msdn.microsoft.com/en-us/library/azure/dd135718.aspx we're forming the continuation request. However, when we issue continutation request like below (broken up for easier reading), the response comes back as ResourceNotFound

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

NextPartitionKey=1!148!YTljM2M4NTEtYjhkNy00MTM2LTk3ODMtMjBjMDhlODliODk3X2ViMjAzOGJmLTk0YmQtNDAwNxxxxxxxxxxxxxxxxxxiODIzZi0zZDIzLTRhOGEtYjcxNS0yMDNkMjcxMTU2YWE-

&NextRowKey=1!84!MDAwMDAwMDIxxxxxxxxxxxxxzgyMWFiYjgtNzRiMi00ZWNmLTgzMjMtNzg2ZGM1NjdkNThh

Any suggestions?

1

There are 1 answers

0
Gaurav Mantri On BEST ANSWER

The reason you're getting ResourceNotFound error is because your 2nd request doesn't include the SAS token in the request. So your 2nd request URL should be your 1st request URL + NextPartitionKey + NextRowKey:

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

Give it a try and that should work.