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