使用 blob 触发的隔离 Azure 函数时如何将 blob 作为流获取?

Rou*_*der 6 c# azure azure-blob-storage azure-functions

现在,我的函数如下所示:

[Function(nameof(Functions.ProcessUpload))]
public void ProcessUpload([BlobTrigger("integration/{name}")] object blob, string name)
{           
}
Run Code Online (Sandbox Code Playgroud)

触发时,参数blob是类型的实例System.ReadOnlyMemory<byte>- 这意味着博客的所有内容都在内存中提供。我在网上看到的所有示例都将参数作为string. System.ReadOnlyMemory<byte>、 和 都不适用string于我的情况,因为我需要能够处理潜在的 1GB+ 大 blob。

对于进程内函数,blob 参数是类型Stream并且一切正常。如何使用独立函数将新创建的 blob 作为流进行处理?

Tho*_*mas 6

截至 2022 年 8 月,不支持:

查看在隔离进程中运行 C# Azure Functions 的指南,有一些有趣的注释:

由于 .NET 独立项目在单独的工作进程中运行,因此绑定无法利用丰富的绑定类,例如ICollector<T>IAsyncCollector<T>CloudBlockBlob。也没有直接支持从底层服务 SDK 继承的类型,例如DocumentClientBrokeredMessage。相反,绑定依赖于字符串、数组和可序列化类型,例如普通旧类对象 (POCO)。