(可选)写入Blob

时间:2019-02-17 03:26:09

标签: azure-storage azure-functions streamwriter azure-blob-storage

我正在尝试建立一个仅在功能满足时才写入blob的azure函数。 Blob与函数位于相同的位置,因此我尝试避免提供连接字符串,并使用绑定进行此操作。我目前正在使用类似以下内容的绑定:

[Blob("folder/myFile.json", FileAccess.Write)]Stream writeBlob

有了此绑定,我可以使用以下命令写入JSON文件:

if (myCondition)
    using (var writer = new StreamWriter(writeBlob)) 
        writer.Write(myContent);

当条件为真时,这可以正常工作。但是,如果条件为假,则文件为空。由于我没有写入流,因此希望该文件保持不变。现在,我的解决方法是让另一个读取绑定到相同的json并重写文件内容。

1 个答案:

答案 0 :(得分:1)

您可以根据情况使用动态绑定。有关更多信息,请参见这篇文章:

所以基本上您需要:

  • 在函数定义中添加一个IBinder binder参数。
  • 条件为true时,写入文件:
    if (myCondition)
    {
        var binding= new BlobAttribute(blobPath: "folder/myFile.json");
        using (var writer = binder.Bind<TextWriter>(binding))
        {
            writer.Write(myContent);
        }
    }