Azure Table Storage RowKey ограничен шаблонами символов?

Существуют ли ограниченные шаблоны символов в Azure TableStorage RowKeys? Я не смог найти никаких документированных с помощью многочисленных поисков. Тем не менее, я получаю поведение, которое подразумевает такое в некоторых тестах производительности.

У меня какое-то странное поведение с RowKeys, состоящим из случайных символов (, тестовый драйвер предотвращает использование ограниченных символов (/ \ #? )плюс блокировка одинарных кавычек в RowKey ). В результате у меня есть RowKey, который отлично вставляется в таблицу, но не может быть запрошен (результатом является InvalidInput ). Например:

RowKey: 9}5O0J=5Z,4,D,{!IKPE,~M]%54+9G0ZQ&G34!G+

Попытка выполнить запрос по этому равенству RowKwy ()приведет к ошибке (как в нашем приложении с использованием Azure Storage Explorer, так и в 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

. Похоже, что %54 в RowKey не экранирован в фильтре. Интересно, что я получаю аналогичное поведение для пакетных запросов к хранилищу таблиц с URI в пакетном XML, который включает этот RowKey. Я также видел подобное поведение для RowKeys со встроенными двойными кавычками, хотя я еще не изолировал этот шаблон.

Кто-нибудь встречал меня с таким поведением? Я могу легко запретить появление дополнительных символов в RowKeys, но мне очень хотелось бы знать «правила».

31
задан abatishchev 2 November 2015 в 23:00
поделиться