ComputerVision API 不允许使用 SAS 令牌的 BlobURL

ComputerVision API doesn't allow BlobURL with SAS Token

我正在尝试使用 Azure Computer Vision API (Azure 认知服务)

分析我的图像

但问题是我的图像存储在具有 私人访问权限 的 Blob 容器中,这意味着没有 SAS 令牌它将无法访问。因此,当我尝试使用我的 图像 URL + SAS 调用计算机视觉 API 时。它给出了 错误请求

您也可以在 this site 中轻松重现此问题

不确定您是否可以将很可能不允许跨源资源共享 (CORS) 的演示网页等同于不允许 SAS 令牌的计算机视觉 API。存储帐户(您可以控制)和 Web 应用程序(您无法控制)都需要允许 CORS,因为它们是跨域的。我的建议是建立一个调用计算机视觉的 Azure Web API,这样你就可以在两者上启用 CORS。

https://docs.microsoft.com/en-us/rest/api/storageservices/cross-origin-resource-sharing--cors--support-for-the-azure-storage-services

我快速尝试了一下,以确保这只是对您提供的网站上的网络演示的限制。

我可以确认托管在 blob 上的图像,通过 SAS 签名访问,正在使用 API,请参阅下面我的测试,其中我得到了 200 OK 和有效的回复内容:

我还确认它不在网络演示中:我猜他们只是确保提供的 URL 字符串以 jpgjpeg、[=13= 结尾]、bmppng