我正在使用azure函数,该函数会将多个具有不同名称的xml文件保存到同一blob容器中。我想使用其他绑定中的数据来格式化名称。
Blob绑定:
[Blob("outbound/", FileAccess.Write, Connection =
Settings.InbundBlobConnectionString)] Stream outboundBlob
有没有一种方法可以使用代码来操纵Blob路径?
答案 0 :(得分:1)
我们可以使用imperative binding pattern。在函数方法签名中,添加Binder binder
,删除Blob输入绑定,然后尝试下面的代码。
string myBlobName = "valueGotFromOtherBinding";
var attributes = new Attribute[]
{
new BlobAttribute($"outbound/{myBlobName}", FileAccess.Write),
new StorageAccountAttribute(Settings.InbundBlobConnectionString)
};
using (var writer = await binder.BindAsync<TextWriter>(attributes))
{
await writer.WriteAsync("Conetent");
}
答案 1 :(得分:1)
如果blobName值位于“触发器”绑定JSON有效负载中(例如,在消息/请求主体中),则可以使用POCO对象,请参见以下内容:
[QueueTrigger("myQueueName", Connection = "mySTORAGE")] POCO item,
[Blob("outbound/{blobName}", FileAccess.Write, Connection = Settings.InbundBlobConnectionString)] Stream outboundBlob
…
public class POCO
{
// ...
public string blobName { get; set;}
}
这里是doc。