You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建仅绑定Blob文件名而非完整Blob的Blob触发Azure Function?

解决Azure Function Blob触发仅获取文件名的问题

完全可以实现仅获取Blob文件名,无需下载完整Blob内容,从根源避免内存不足异常。以下是两种直接有效的实现方式:

方法1:利用触发器路径占位符直接获取文件名

在Blob触发器的绑定路径中使用占位符(如{name}),该占位符会直接映射为函数参数,不会触发Blob内容的下载,是最轻量化的实现方式。

以C# In-Process模型为例:

public static void Run(
    [BlobTrigger("your-container-name/{name}")] CloudBlockBlob blob,
    string name,
    ILogger log)
{
    log.LogInformation("新Blob文件名: {FileName}", name);
    // 直接使用name参数即可,无需操作blob对象的内容
}

方法2:通过Blob客户端对象获取(适用于Isolated Worker模型)

如果使用最新的Isolated Worker模型,绑定BlobClient对象(仅为客户端代理,不自动下载内容),同样可以通过占位符或客户端属性获取文件名:

[Function("BlobFileNameTrigger")]
public static void Run(
    [BlobTrigger("your-container-name/{name}")] BlobClient blobClient,
    string name,
    FunctionContext context)
{
    var logger = context.GetLogger("BlobFileNameTrigger");
    logger.LogInformation("新Blob文件名: {FileName}", name);
    // 也可通过blobClient.Name获取文件名
}

关键注意事项

  • 避免绑定Stream、byte[]等类型,这类绑定会自动下载完整Blob内容,引发内存问题。
  • 除文件名外,若需获取Blob元数据(如创建时间、大小),可直接通过CloudBlockBlob或BlobClient的属性读取,无需下载Blob内容。

内容的提问来源于stack exchange,提问作者FeeFiFoFum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:50:54