C# Azure函数blob BlobPath为小写

C# Azure函数blob BlobPath为小写,c#,azure,azure-functions,C#,Azure,Azure Functions,我有一个类似这样的Azure函数 public async Task<IActionResult> GetProducts ( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "products/{prod}/all")] HttpRequest req, [Blob("%prodPath%", FileAccess.Read, Connection = "AzureWebJobsStorage")] Stre

我有一个类似这样的Azure函数

public async Task<IActionResult> GetProducts
(
  [HttpTrigger(AuthorizationLevel.Function, "get", Route = "products/{prod}/all")] HttpRequest req,
  [Blob("%prodPath%", FileAccess.Read, Connection = "AzureWebJobsStorage")] Stream myBlobRead,
   ILogger log, string prod)
 {
     var result = await _function.get(myBlobRead).ConfigureAwait(false);
     return result;
 }
)
如果用户执行这样的get请求=>www.xxx.com/api/products/table/all

一切正常,因为blob文件名为table-all.csv

但是如果用户尝试执行这样的get请求=>www.xxx.com/api/products/Table/all,它将失败,因为名称不匹配

你能帮我吗

我试图将配置文件中的变量更改为

[tolower("prodPath")]: "products/{prod}-all.csv"
但同样的问题

如何将prod更改为小写


谢谢

我建议使用运行时绑定技术(和)。其思想是,不使用blog属性,而是使用
IBinder
参数,然后在函数体中调用此绑定。显然,您现在可以计算所需的任何参数。注意,如果使用这种技术,应该从json文件中删除表达式

以下是来自MSDN的示例,并结合您的代码:

公共静态类IBinderExample
{
[FunctionName(“CreateBlobUsingBinder”)]
公共静态无效运行(
[HttpTrigger(AuthorizationLevel.Function,“get”,Route=“products/{prod}/all”)]HttpRequest请求,
IBinder(粘合剂)
{
var prodPath=$“products/{prod}-all.csv”.ToLower();
//提供连接字符串,并可选择将TextWriter更改为您需要的任何格式
使用(var writer=binder.Bind)(新BlobatAttribute(
prodPath,FileAccess.Write)))
{
作家。写(“你好,世界!”);
};
}
}

如果我们将路线设置为小写怎么办
Route=“products/{prod}/all”.ToLower()
@prasadelkikikar我在尝试执行您提到的操作时遇到此错误=>严重性代码描述项目文件行抑制状态错误CS0182属性参数必须是常量表达式,属性参数类型API HttpTrigger.cs 51的typeof表达式或数组创建表达式处于活动状态
[tolower("prodPath")]: "products/{prod}-all.csv"