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

如何在Azure Function v2中获取Blob名称并存储到变量?

如何在Azure Function v2中获取Blob名称并存储到变量中?

问题场景

你在使用Azure Function v2的Blob触发器和Blob输入绑定时,尝试通过myblob.name获取Blob名称,但发现该值仅在控制台输出中有效,希望将Blob名称存储到变量中直接使用。现有代码如下:

@app.blob_trigger(arg_name="myblob", path="input/{name}",connection="AzureWebJobsStorage") 
@app.blob_input(arg_name="inputblob", path="input/{name}",connection="AzureWebJobsStorage")
def main(myblob: func.InputStream,inputblob: str):

解决方案

有两种可靠方式可以获取并存储Blob名称:

方式1:利用绑定占位符直接注入参数

你在Blob绑定路径中已经定义了{name}占位符,Azure Functions会自动将该占位符对应的值作为参数注入到函数中,直接声明该参数即可使用:

@app.blob_trigger(arg_name="myblob", path="input/{name}", connection="AzureWebJobsStorage") 
@app.blob_input(arg_name="inputblob", path="input/{name}", connection="AzureWebJobsStorage")
def main(myblob: func.InputStream, inputblob: str, name: str):
    # 将Blob名称存储到变量
    blob_name = name
    # 后续可直接使用blob_name变量
    print(f"当前处理的Blob名称:{blob_name}")

这种方式最直接,无需额外处理字符串,是官方推荐的用法。

方式2:从InputStream对象的name属性提取

如果需要从myblob对象中提取名称,可以通过分割完整路径的方式获取。myblob.name返回Blob的完整存储路径(例如input/test.txt),分割后取最后一段即可得到文件名:

@app.blob_trigger(arg_name="myblob", path="input/{name}", connection="AzureWebJobsStorage") 
@app.blob_input(arg_name="inputblob", path="input/{name}", connection="AzureWebJobsStorage")
def main(myblob: func.InputStream, inputblob: str):
    # 分割路径提取Blob名称
    blob_name = myblob.name.split('/')[-1]
    # 使用blob_name变量
    print(f"当前处理的Blob名称:{blob_name}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:33:09