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

如何通过URL使用Azure AI Document Analyzer分析Blob存储中的图片?

问题分析与解决方案

可能的原因

  1. Blob URL非直接文件地址:你使用的Blob URL可能是预览页面链接,而非直接指向图片文件的地址,导致Form Recognizer无法获取到正确的图片内容。
  2. Blob的Content-Type设置错误:Blob存储中图片的Content-Type未设置为image/jpeg(JPG格式对应的类型),而是默认的application/octet-stream,Form Recognizer无法识别该类型的文件格式。
  3. 网络访问限制:即使Blob设置为公开访问,存储账户可能存在防火墙、虚拟网络等限制,导致Form Recognizer服务无法正常访问该URL。
  4. URL编码问题:URL中包含未正确编码的特殊字符(如空格),导致请求解析失败。

解决步骤

1. 验证Blob URL的有效性

  • 将Blob URL复制到浏览器地址栏,确认能直接下载图片文件,而非打开预览页面。Azure Blob的直接访问URL格式应为:
    https://<storage-account-name>.blob.core.windows.net/<container-name>/<image-filename>.jpg
    
  • 检查URL是否包含特殊字符,如有需进行URL编码(如空格替换为%20)。

2. 修正Blob的Content-Type属性

  • 登录Azure门户,找到目标Blob存储账户和对应Blob。
  • 在Blob的「属性」面板中,将「Content-Type」修改为image/jpeg(对应JPG图片),保存设置。

3. 使用SAS URL访问Blob

  • 若公开URL仍无法访问,可为Blob生成带读取权限的SAS令牌(共享访问签名),生成的SAS URL格式类似:
    https://<storage-account>.blob.core.windows.net/<container>/<image>.jpg?sv=2023-11-03&ss=b&srt=o&sp=r&se=2024-05-01T00:00:00Z&st=2024-04-01T00:00:00Z&spr=https&sig=<signature>
    
  • 使用该SAS URL替换原Blob URL,调用beginAnalyzeDocumentFromUrl方法。

4. 直接读取Blob内容并分析

如果URL方式始终存在问题,可通过Azure Storage SDK读取Blob的输入流,直接传递给Form Recognizer:

// 初始化Blob客户端
BlobClient blobClient = new BlobClientBuilder()
    .connectionString("<your-storage-connection-string>")
    .containerName("<container-name>")
    .blobName("<image-filename>.jpg")
    .buildClient();

// 获取Blob输入流并分析
try (InputStream inputStream = blobClient.openInputStream()) {
    SyncPoller<OperationResult, AnalyzeResult> poller = documentAnalyzerProvider.getClient()
        .beginAnalyzeDocument(MODEL_ID, BinaryData.fromStream(inputStream));
    AnalyzeResult result = poller.getFinalResult();
    // 处理分析结果
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:40:16