【问题标题】:binding to input blob imperatively强制绑定到输入 blob
【发布时间】:2019-10-14 13:49:14
【问题描述】:

我们如何强制绑定到输入 blob?

我希望能够读取我的 azure 函数中的 blob。一种方法是添加一个像这样的参数:

[Blob("%MyInputBlob%/{FileName}", FileAccess.Read)]  Stream input

但是,这对我不起作用,因为我需要读取多个 blob,并且它们具有不同的 {filenames}

我知道有一个命令式绑定解决方案可以像这样写入输出:

        var attributes = new Attribute[]
        {
                new BlobAttribute(path),
                new StorageAccountAttribute(connection)
        };
        using (var writer = await binder.BindAsync<TextWriter>(attributes))
        {
            writer.Write(payload);
        }

INPUT blob 是否有类似的绑定能力?

【问题讨论】:

    标签: c# .net azure-functions


    【解决方案1】:

    对于动态输入绑定,您可以按如下方式更改绑定类型:

    var blobString = await binder.BindAsync<string>(attributes);
    

    这里有一个类似的issue,你可以参考一下。

    【讨论】:

      【解决方案2】:

      如果我对您的理解正确 - 您可以在不指定文件名的情况下获得对 blob 容器的引用:

      [Blob("ContainerName", Connection = "StorageConnectionString")] CloudBlobContainer container
      

      然后从这里 - 读取文件:

      container.GetBlockBlobReference("filename");
      

      【讨论】:

      • 太酷了!这是使用CloudBlobContainer 的主要原因吗?
      • 不确定这是主要原因,但这是一种无需指定 blob 名称即可访问容器的方式
      猜你喜欢
      • 2019-08-11
      • 2018-05-17
      • 2017-11-24
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2017-04-06
      • 2018-05-25
      • 1970-01-01
      相关资源
      最近更新 更多