Существуют ли ограниченные шаблоны символов в 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, но мне очень хотелось бы знать «правила».