Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)

Posted

技术标签:

【中文标题】Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)【英文标题】:Azure storage. Got 403 [url] (CORS not enabled or no matching rule found for this request.) 【发布时间】:2018-11-19 23:13:28 【问题描述】:

我正在开发一些网页,允许将文件从客户端直接上传到我的天蓝色存储。 我的文件存储在 Portal 中的 Azure BLOB 存储中。 为此,我使用来自 npm 的 'azure-storage' v2.8.1 包。

当我尝试创建容器时:

    const blobService = AzureStorage.createBlobServiceWithSas(storageUri, sasToken)
    blobService.createContainerIfNotExists(containerName,  publicAccessLevel: 'blob' , (error, result, response) => .....)

我有错误:

    OPTIONS [url to my storage] 403(CORS 未启用或未找到此请求的匹配规则。)

    无法加载 [url 到我的存储]:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我确定 blob 连接字符串是正确的 - 我检查了它。 此外,我知道我可以在 azure.portal 上为我的存储编辑 CORS。 目前是空的。

我是否需要在那里添加/编辑一些 CORS? 有人知道解决方案吗?

【问题讨论】:

【参考方案1】:

我是否需要在那里添加/编辑一些 CORS?有人知道解决方案吗?

是的,您需要为存储 blob 服务添加 CORS 设置。默认情况下,每个服务都禁用 CORS。我们可以从article 获得更多关于 CORS 的信息。

注意:高级存储帐户不支持 CORS。

我们也可以从 Azure 门户设置它。更多细节请参考截图。

【讨论】:

我刚刚添加了 CORS 的所有配置。它在前几次有效。但是知道我开始收到另一个错误:HEAD [url] 403 (Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.) @AlexandrMendelevych,你的 sas 令牌的有效期是多久?也许你应该只生成一个新的 sas 令牌 @Thomas 就是这样。一切正常。问题出在我的本地机器上。时区错误,因此我无法通过身份验证。 本地机器应该使用什么时区?

以上是关于Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)的主要内容,如果未能解决你的问题,请参考以下文章

403服务器在使用soapui获取Azure存储数据时无法验证请求

Azure 存储 Blob CORS 错误

Azure 功能:访问存储帐户时出现 403 错误

Azure 存储帐户 - 错误 403 被禁止

尝试在 Web API 请求上检索 Azure Blob 时出现 403 错误

Azure Vnet Blob 存储