Azure表PHP:url编码使延续令牌无效

时间:2013-04-16 08:36:10

标签: php azure-table-storage

我已经实现了一种方法来计算从查询中检索到的所有实体。如果实体超过1000,我使用延续令牌继续

public static function countResults($storageAccountName, $tableName, $filter, $projections = null)
{
    $count = 0;
    $options = null;
    $continue = false;
    do
    {
        $options = Azure::getEntitiesFromTable($storageAccountName, $tableName, $filter, $projections, $options);

        $currentResults = $options->getEntities();
        $count += count($currentResults);

        // if specified it means there are other results
        $continue = (!is_null($options->getNextPartitionKey()) && !is_null($options->getNextRowKey()));             

    } while ($continue);

    return $count; 
}

我只返回QueryEntitiesResult对象,并将其用作执行过滤器的方法的输入,它获取分区键和行键并将它们设置为传递给TableRestProxy-> queryEntities的QueryEntitiesOptions对象

因此没有任何内容适用于延续令牌。问题是TableRestProxy-> queryEntities将$ this-> _encodeODataUriValue应用于pkey和rowkey。这会使令牌失效,并始终返回相同的前1000个结果。 删除它的编码工作。这是图书馆的错误吗?

0 个答案:

没有答案