azure 与BlobContainerClient按标记查找BlobsByTags相关的无效查询参数值错误

d7v8vwbk  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(84)

我想通过标签过滤我的blob存储文件。下面两行可以很好地工作。

var query = "Client = '"+req.Client+"' AND Type = '"+req.Type+"'";

var foundItems = sourceClient.FindBlobsByTags(query).ToList();

但是如果我添加另一个日期(字符串,因为SetBlobTags只支持字符串)参数,我会得到InvalidQueryParameterValue

var query = "Client = '"+req.Client+"' AND Type = '"+req.Type+"' AND Timestamp >= '"+req.Date.ToString()+"'";
    
    var foundItems = sourceClient.FindBlobsByTags(query).ToList();

出现以下错误。

Status: 400 (Error parsing query at or near character position 45: unexpected '1')
ErrorCode: InvalidQueryParameterValue

Additional Information:
QueryParameterName: where
QueryParameterValue: Client = 'ABC' AND Type = 'Application' AND Timestamp >= '1/17/2023 1:21:56 PM'
Reason: This query parameter value is invalid.

我的问题出了什么问题?
据网站介绍,支持〉=
“存储服务支持ANSI SQL WHERE子句语法的一个子集作为where=expression查询参数的值。支持下列运算符:=、〉、〉=、〈、〈=、AND.和@container。示例表达式:“标记键”=“标记值”。”

t9eec4r0

t9eec4r01#

在我添加反斜杠之后,它工作正常。

"\"Timestamp\" >= '"+req.Date.ToString()"'"

相关问题