我有一个Azure功能,只要将图像上传到Azure存储帐户中的容器,就会触发该功能。我读了流并做了一些动作。
我还想获得触发函数的blob的uri但是我该怎么做?我是否必须使用其他输入/输出?
public static void Run(Stream myBlob, TraceWriter log)
{
//get byte array of the stream
byte[] image = ReadStream(myBlob);
// ...
}
答案 0 :(得分:4)
如果你真的想要完整的URI,而不仅仅是blob相对路径(string blobTrigger
会给你),你需要做这样的事情:
public static void Run(CloudBlockBlob myBlob, TraceWriter log)
{
// ...
}
此时,您可以使用CloudBlockBlob object model两者来获取URI(例如StorageUri
或其他一些相关道具)并获取流(例如BeginDownloadToStream
)。请注意,执行此操作时,您无法再直接接收Stream作为输入参数。
答案 1 :(得分:1)
在绑定中,您可以为blob路径定义变量名称:
"path": "foo/{name}.bar",
然后将name
添加为另一个函数参数:
public static void Run(Stream myBlob, string name, TraceWriter log)
答案 2 :(得分:1)
基于webjobs' documentation for blobs,您只需添加string blobTrigger
参数:
public static void Run(Stream myBlob, string blobTrigger, TraceWriter log)