如何解决将二进制数据写入 Azure HttpTrigger 函数中的 blob
我有一个 Azure HttpTrigger 函数,它使用 IBinder 将数据写入 blob。它适用于发布到我的函数的文本数据,但二进制数据在写入 blob 时无效。我的代码类似于我在其他帖子和博客中看到的代码,例如
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function,"post",Route = "FileDelivery")] HttpRequest httpRequest,IBinder myBinder,ILogger log)
...
using (var writer = myBinder.Bind<TextWriter>(new BlobAttribute(
$"my-files/{filename}",FileAccess.Write)))
{
await writer.WriteAsync(await new StreamReader(httpRequest.Body).ReadToEndAsync());
};
我认为问题在于用于绑定到 blob 的 TextWriter。我尝试使用 BinaryWriter,但收到错误 无法将 Blob 绑定到类型“System.IO.BinaryWriter”。我发现没有任何帖子描述过以这种方式将二进制数据保存到 blob。是否有我遗漏的 blob 属性或其他一些可以使其工作的设置?
解决方法
我认为可以使用以下参数类型,可以参考this documentation:
以下代码是我如何接受图像并将其上传到存储的示例:
using (var destinationStream = myBinder.Bind<Stream>(new BlobAttribute(
$"test/test.jpg",FileAccess.Write)))
{
var image = req.Form.Files["test"];
await image.CopyToAsync(destinationStream);
};
这是我的请求正文:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。