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

Azure OpenAI无法访问带私有端点的Azure Storage Blob SAS URL问题

解决Azure存储私有端点下GPT-4o无法访问SAS Blob URL的403问题

问题原因

GPT-4o的图片抓取服务运行在Azure公共网络环境中,即便为Azure OpenAI资源配置了私有端点,模型的图片访问请求仍走公网通道。而你的Azure存储账户因私有端点限制了公网访问,导致SAS Blob URL无法被公网环境的GPT-4o服务访问,触发403权限错误。Base64编码方式无需外部网络请求,因此可以正常工作。

解决方案

1. 配置存储账户的服务端点(推荐)

通过服务端点允许Azure OpenAI服务直接访问存储账户,绕过公网限制:

  • 进入Azure存储账户的网络设置页面
  • 在“虚拟网络”板块下,找到“服务端点”选项
  • 添加Microsoft.CognitiveServices(Azure OpenAI所属的服务命名空间)
  • 保存配置后,重新测试SAS URL调用GPT-4o的接口

注意:需确保Azure OpenAI资源与存储账户处于同一Azure区域,或目标区域支持跨区域服务端点访问。

2. 临时开放存储账户公网访问(仅用于测试)

若需快速验证问题根源,可临时解除公网访问限制:

  • 存储账户网络设置中,将“允许访问的网络”改为“所有网络”
  • 用浏览器访问SAS URL,确认图片可正常打开后,再测试GPT-4o接口
  • 测试完成后立即改回“选定的网络”,保障存储账户安全

3. 持续使用Base64编码(最稳妥的临时方案)

无需修改网络配置,直接将图片转为Base64编码传入:

import base64

def convert_image_to_base64(image_file_path):
    with open(image_file_path, "rb") as img_file:
        encoded_str = base64.b64encode(img_file.read()).decode("utf-8")
        return f"data:image/jpeg;base64,{encoded_str}"

# 替换为你的图片路径
image_base64 = convert_image_to_base64("path/to/your/image.jpg")

# 构造请求内容
arr = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Merge this OCR and previous chat OCR"},
            {"type": "image_url", "image_url": {"url": image_base64}}
        ]
    }
]

4. 验证SAS令牌有效性

确认生成的SAS令牌具备正确权限:

  • 生成SAS时需勾选**读取(r)**权限
  • 检查令牌的有效期是否在当前时间范围内
  • 用浏览器直接访问SAS URL,若返回403则重新生成符合要求的SAS令牌

内容的提问来源于stack exchange,提问作者35_Khushal Makhija

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:14:54