Azure Functions - Blob Stream输出绑定

时间:2016-11-22 11:59:08

标签: azure azure-storage-blobs azure-functions

我创建了一个带有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 }

请协助!

2 个答案:

答案 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);
    }
}