Azure功能:C#获取blob URI

时间:2017-03-23 16:27:20

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

我有一个Azure功能,只要将图像上传到Azure存储帐户中的容器,就会触发该功能。我读了流并做了一些动作。

我还想获得触发函数的blob的uri但是我该怎么做?我是否必须使用其他输入/输出?

public static void Run(Stream myBlob, TraceWriter log) 
{
    //get byte array of the stream
    byte[] image = ReadStream(myBlob);
    // ...
}

3 个答案:

答案 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)