gpt4 book ai didi

c# - Azure 函数 blob BlobPath 转为小写

转载 作者:行者123 更新时间:2023-11-30 15:52:08 26 4
gpt4 key购买 nike

我有一个像这样的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;
}
)

blob 从配置 json 文件中读取文件路径。在配置 json 文件中,有一个变量和一个值,如下所示:

"prodPath": "products/{prod}-all.csv"

如果用户执行这样的 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 更改为小写?

谢谢

最佳答案

我可能建议使用运行时绑定(bind)技术( article for c#c# script )。这个想法是,不使用 blog 属性,而是使用 IBinder 参数,然后在函数体中调用此绑定(bind)。显然,您现在可以评估您想要的任何参数。请注意,如果使用此技术,您应该从 json 文件中删除表达式。

以下是来自 MSDN 的示例以及您的部分代码:

public static class IBinderExample
{
[FunctionName("CreateBlobUsingBinder")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "products/{prod}/all")] HttpRequest req,
IBinder binder)
{
var prodPath = $"products/{prod}-all.csv".ToLower();
// provide connection string and optionally change TextWriter to whatever you need
using (var writer = binder.Bind<TextWriter>(new BlobAttribute(
prodPath, FileAccess.Write)))
{
writer.Write("Hello World!");
};
}
}

关于c# - Azure 函数 blob BlobPath 转为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55261629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com