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

从Azure Blob Storage读取文件时遭遇FileNotFoundError问题排查

问题分析与解决

你遇到的错误核心有两个:

  1. np.load参数使用错误:np.load接受的是文件路径、二进制文件对象或字节流,而你传入的是解码后的文本字符串。此时np.load会把这个字符串当作本地文件路径去查找,自然找不到对应文件,所以抛出FileNotFoundError。
  2. 二进制文件处理逻辑错误:.npy是二进制格式文件,你的read_blob_content函数把下载的二进制内容用decode('utf-8')转成了文本字符串,这不仅破坏了原文件的二进制结构,也不符合np.load的输入要求。

修正方案

步骤1:修改read_blob_content函数

去掉文本解码步骤,直接返回二进制内容,或者将二进制内容包装成BytesIO对象(方便np.load直接读取):

方式一:返回二进制字节

def read_blob_content(storage_account_name, storage_account_key, container_name, blob_name):
    '''读取Azure Blob Storage中的二进制文件'''
    blob_service_client = BlobServiceClient(account_url=f"https://{storage_account_name}.blob.core.windows.net", credential=storage_account_key)
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)
    blob_stream = blob_client.download_blob()
    # 直接返回二进制内容,不做解码
    return blob_stream.readall()

方式二:直接返回BytesIO对象

from io import BytesIO

def read_blob_content(storage_account_name, storage_account_key, container_name, blob_name):
    '''读取Azure Blob Storage中的二进制文件并包装为BytesIO'''
    blob_service_client = BlobServiceClient(account_url=f"https://{storage_account_name}.blob.core.windows.net", credential=storage_account_key)
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)
    blob_stream = blob_client.download_blob()
    # 将二进制内容包装为BytesIO,让np.load可以直接读取
    return BytesIO(blob_stream.readall())

步骤2:修改np.load的调用方式

  • 如果用方式一(返回二进制字节),需要将字节包装成BytesIO再传入np.load:
from io import BytesIO

v3_embedding = np.load(BytesIO(read_blob_content(account_name, account_key, container_name, blob_name)))
  • 如果用方式二(返回BytesIO),可以直接传入:
v3_embedding = np.load(read_blob_content(account_name, account_key, container_name, blob_name))

这样就能正确读取Azure Blob Storage中的.npy文件了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:42:50