小编Mik*_*keN的帖子

Azure表存储RowKey限制字符模式?

Azure TableStorage RowKeys中是否存在受限制的字符模式?我无法通过大量搜索找到任何记录.但是,我在一些性能测试中得到了这样的行为.

我有一些奇怪的行为,RowKeys包含随机字符(测试驱动程序确实阻止了受限字符(/ \#?)并阻止在RowKey中发生单引号).结果是我有一个RowKey,可以很好地插入到表中,但无法查询(结果是InvalidInput).例如:

RowKey: 9}5O0J=5Z,4,D,{!IKPE,~M]%54+9G0ZQ&G34!G+
Run Code Online (Sandbox Code Playgroud)

尝试通过此RowKwy(相等)进行查询将导致错误(在我们的应用程序中,使用Azure存储资源管理器和Cloud Storage Studio 2).我看了一下通过Fiddler发送的请求:

GET /foo()?$filter=RowKey%20eq%20'9%7D5O0J=5Z,4,D,%7B!IKPE,~M%5D%54+9G0ZQ&G34!G+' HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

看起来RowKey中的%54未在过滤器中转义.有趣的是,对于包含此RowKey的批处理XML中包含URI的表存储的批处理请求,我得到了类似的行为.我也看到RowKeys使用嵌入式双引号的类似行为,但我尚未分离出该模式.

有没有人陪我这个行为?我可以很容易地限制RowKeys中出现的其他字符,但是我们真的想知道"规则".

azure azure-table-storage

31
推荐指数
4
解决办法
2万
查看次数

标签 统计

azure ×1

azure-table-storage ×1