gpt4 book ai didi

azure 函数: set blob filename from http request

转载 作者:行者123 更新时间:2023-12-02 17:10:42 25 4
gpt4 key购买 nike

我正在尝试设置一个 Azure 函数来将 Blob 从 HTTP 请求上传到 Blob。

我能够使用以下命令上传具有静态文件名的文件:

public static class Uploader
{
[FunctionName("Uploader")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]HttpRequest req,
[Blob("hello/uploaded.jpg", FileAccess.Write)]Stream writer,
TraceWriter log
)
{
log.Info("trigger for image upload started...");
if (!req.ContentType.Contains("multipart/form-data") || (req.Form.Files?.Count ?? 0) == 0)
{
log.Warning("no images found on upload attempt");
return new BadRequestResult();
}
foreach (var file in req.Form.Files)
file.CopyTo(writer.);

return new OkObjectResult("Done!");
}
}

有什么方法可以将 Blob("hello/uploaded.jpg") 更改为 Blob("hello/{fileName}" 来获取名称动态 HTTP 请求。我不介意它是来自头部还是主体。我试图不只针对动态文件名使用整个 GetBlockBlobReference 过程。

更新我不确定我是否遗漏了一些东西或者以错误的方式看待这个问题。对于使用 Blob 存储的无服务器设置,HTTP 上传不应该是一个明显且常见的场景吗?怎么没有这方面的例子呢?

最佳答案

@RomanKiss 建议的选项应该有效。或者,如果您愿意,可以将文件名放入函数 URL 模板中:

[FunctionName("Uploader")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "uploader/{filename}")]
HttpRequest req,
string filename,
[Blob("hello/{filename}", FileAccess.Write)] Stream writer,
TraceWriter log)
{
//...
}

关于 azure 函数: set blob filename from http request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440300/

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