【发布时间】:2021-02-03 20:19:47
【问题描述】:
我正在创建一个绑定到我的 Azure Blob 存储容器并在上传文件时触发的 Azure 函数。
这个特定的容器可以包含任何类型的文件/blob,例如图片、PDF、Excel、MP4等
我想创建不同的处理程序,这些处理程序将根据上传的文件类型执行某些操作。例如,如果它是一个图像文件,我想获取它的尺寸。如果是 MP4,我想调用另一个服务来处理视频等。
如何从Stream 获取文件类型?重要的是要注意我不能依赖文件扩展名,因为在某些情况下,扩展名可能不存在。有没有办法让我获得mimetype?
这是标准的BlogTrigger Azure 函数代码:
[FunctionName("FileManager")]
public static void Run([BlobTrigger("my-container/{name}", Connection = "myConnectionString")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
}
【问题讨论】:
-
我认为你需要使用CloudBlockBlob来接收blob,然后你可以得到你的blob的mimetype。对于blob的流,可以通过DownloadToStreamAsync方法下载。请看我的回答。
标签: azure-functions azure-blob-storage azure-blob-trigger