我遇到了一种情况,需要基于一系列 PartitionKey 和 RowKey 创建 SAS token 。
更准确地说,我的PK是基于时间戳的Ticks(每10分钟范围有一个分区)。我的 RK 基于一些字符串。
我正在尝试从浏览器调用存储并获取一系列 PK(基于某个时间范围)以及这些 PK 内的数据(基于一系列 RK)。 IE:
PK > 100000000 && PK < 200000000 && RK > "aaa"&& RK <"mmm"
当我创建 token 时,来自存储的响应返回正确的分区,但返回所有 RK 的实体。
var sas = table.GetSharedAccessSignature(new SharedAccessTablePolicy
{
Permissions = SharedAccessTablePermissions.Query,
SharedAccessExpiryTime = DateTime.UtcNow.Add(period)
}, null, startPk, startRk, endPk, endRk);
有什么想法可以让调用仅遵循提供的 RK 范围,而不必在客户端上过滤掉不必要的实体吗?
最佳答案
@GauravMantri 给我指出了一篇有用的文章:http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/12/introducing-table-sas-shared-access-signature-queue-sas-and-update-to-blob-sas.aspx
我试图做的事情不受支持。 PK/RK 范围是为从开始 PK/RK 到结束 PK/RK 的连续范围给出的,而不是像我想象的那样是过滤器查询。
关于azure - 具有 PK 和 RK 范围的 Azure 表存储的共享访问签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601782/