如何使用azure功能应用程序阅读azure blob中的内容

时间:2018-04-02 17:44:17

标签: c# azure azure-storage azure-functions

我希望在将文件上传到容器并读取文件中的内容时触发功能应用程序。我能够触发功能应用。但是,当我使用Openread读取文件中的内容时,我找不到引用错误。下面是我用来读取文件和绑定的代码。

n

绑定

#r "System.IO";

using System;
using System.Collections.Generic;
using System.IO;
using System.Configuration;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System.Xml;

using Microsoft.Win32;
using System.Net;
using System.Linq;

public static void Run(Stream myBlob, string name, TraceWriter log, string 
inputBlob)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: 
    {myBlob.Length} Bytes");
    StreamReader reader = new StreamReader(inputBlob.OpenRead())
    {
        String oldContent = reader.ReadToEnd();
    }
}

有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:1)

我没有看到GetblobReference,这可能是问题的原因:

 var blob = container.GetBlobReference("testblob.txt");

        blob.UploadText(new String('x', 5000000));

        var source = blob.OpenRead();

您可以查看官方文档 here

我还建议您查看此thread

中的示例

答案 1 :(得分:1)

您可以按照此document创建blob触发器。

  

我找不到参考错误

在您的情况下,inputBlob是字符串类型,您无法使用inputBlob.OpenRead()。并且不需要额外的绑定inputBlob

请尝试使用以下代码。它在我身边正常工作。

#r "System.IO"

using System;
using System.Collections.Generic;
using System.IO;
public static void Run(Stream myBlob, string name, TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    StreamReader reader = new StreamReader(myBlob);
    string  oldContent = reader.ReadToEnd();
    log.Info($"oldContent:{oldContent}");

}