我创建了一个带有blob存储触发器的Azure功能 - 我想处理一个文件,然后将文件转储到另一个blob存储容器中。
在最简单的情况下,我认为它看起来像这样:
keyPress
这些是我的约束力:
public static void Run(Stream blob, string name, out Stream outputBlob, TraceWriter log)
{
outputBlob = blob;
}
我从文档中读到,如果你返回一个POCO,它会将它序列化为JSON。
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#output-usage
这似乎表明你可以输出到一个流 - 我似乎只是得到了:
{
"bindings": [
{
"name": "blob",
"type": "blobTrigger",
"direction": "in",
"path": "input/{name}",
"connection": "wlimportstaging_STORAGE"
},
{
"name": "outputBlob",
"type": "blob",
"direction": "out",
"path": "original/{name}",
"connection": "wlimportstaging_STORAGE"
}
],
"disabled": false
}
请协助!
答案 0 :(得分:3)
你也是
public static async Task Run(Stream myBlob, string name, Stream outputBlob, TraceWriter log)
{
await myBlob.CopyToAsync(outputBlob);
}
答案 1 :(得分:2)
这很好用。如果有更好的方法,我会非常感兴趣。
public static async Task Run(Stream blob, string name, Stream outBlob, TraceWriter log)
{
using (MemoryStream ms = new MemoryStream())
{
blob.CopyTo(ms);
var byteArray = ms.ToArray();
await outBlob.WriteAsync(byteArray, 0, byteArray.Length);
}
}