![](/img/trans.png)
[英]How to specify multiple file types for Azure Function Blob Trigger input binding?
[英]Azure Function with HTTP Trigger and Blob Input Binding - can't read JSON files that are in a folder. Possible blob file path error?
我正在使用一个 Azure 函数,它有一个带有路由参数 {id} 的 HTTP 触发器,它是我要读取的 JSON 文件的 fileId。 我正在使用 Blob 输入绑定来绑定我的 JSON 文件的存储位置。 JSON 文件存储在一个名为“conversation”的容器中,然后存储在一个名为“Conversation”的文件夹中。 文件路径的示例是"https://<STORAGE_ACCOUNT_NAME>/conversations/Conversation/8da3d7ad3e35273-1aWpKU4rVghHiTaYkjOjVC-eu%7C0000000.json"
下面是我的代码。
public static class GetConvo
{
[FunctionName("GetConvo")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "getConvo/{id}")] HttpRequest req,
[Blob("conversations/{id}", FileAccess.Read, Connection = "AzureWebJobsStorage")] string json,
ILogger log, string id)
{
log.LogInformation($"File name: {id}");
if (json == null)
{
log.LogInformation($"File {id} not found");
return new NotFoundResult();
}
else
{
log.LogInformation($"Content: {json}");
}
return new OkObjectResult(JsonConvert.DeserializeObject<Message>(json));
如果我将 JSON 文件移动到“Conversation”文件夹之外,上面的代码可以工作,我可以访问它并收到 200OK 代码。
我尝试将 Blob 输入绑定路径更改为“conversations/Conversation/{id}”,如下所示,但这会返回 404 代码。
[FunctionName("GetConvo")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "getConvo/{id}")] HttpRequest req,
[Blob("conversations/Conversation/{id}", FileAccess.Read, Connection = "AzureWebJobsStorage")] string json,
ILogger log, string id)
这是一个blob输入路径问题吗?
如何使用 azure 函数读取 blob 容器中文件夹中的 JSON 文件?
@AjgB,是的,Blob 路径不正确。 您需要提供文件扩展名。
假设该文件直接放在您的“对话”文件夹中。 那么你的 BLOB 输入绑定应该是 -
[Blob("conversations/{id}.json", FileAccess.Read, Connection = "AzureWebJobsStorage")] string json
注意 blob 路径中的.json
我发现我的错误是什么。
Blob 输入路径正确。 这是一个 URL 编码问题:
https://<STORAGE_ACCOUNT_NAME>/conversations/Conversation/8da3d7ad3e35273-1aWpKU4rVghHiTaYkjOjVC-eu%7C0000000.json
%
未被识别且需要; 将25
放在%
之后解决了这个错误:
https://<STORAGE_ACCOUNT_NAME>/conversations/Conversation/8da3d7ad3e35273-1aWpKU4rVghHiTaYkjOjVC-eu%257C0000000.json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.