创建Microsoft Flow自定义连接器时提示‘Failed to upload file’错误
解决Microsoft Flow自定义连接器创建时的CORS错误问题
我之前遇到过几乎一模一样的情况——用OpenAPI文件创建Flow自定义连接器时触发了CORS 403错误,但Logic Apps那边用同一文件却完全正常。下面是我亲测有效的解决思路和步骤:
1. 检查Blob存储的CORS规则(针对自定义Blob资源)
如果你的OpenAPI文件中引用了自己的Blob资源,首先要确认这些Blob的CORS配置是否允许Flow域名访问:
- 登录Azure门户,找到对应的Blob存储账户
- 导航到资源共享 (CORS) 选项卡
- 添加一条新规则,参数设置参考:
- 允许的来源:
https://unitedkingdom.flow.microsoft.com(如果你的Flow环境在其他区域,替换成对应域名,比如美国区是https://flow.microsoft.com) - 允许的方法:至少勾选
OPTIONS、PUT(上传文件需要这两个方法) - 允许的标头:暂时设置为
*(测试通过后可以根据实际请求头缩窄范围) - 公开的标头:设置为
* - 最大年龄(秒):填写
3600
- 允许的来源:
- 保存规则后,重新尝试创建连接器
2. 针对微软托管Blob的临时解决方法
如果报错中的Blob是Flow服务自身使用的存储(比如你提供的pafeblobprodln.blob.core.windows.net),这可能是特定区域Flow服务的配置问题,我当时用下面两种方法解决了:
- 切换Flow环境区域:尝试在其他区域(比如美国中部)创建连接器,成功后再迁移到目标区域
- 转换OpenAPI格式:用Swagger Editor把JSON格式的OpenAPI文件转换成YAML格式,再重新导入Flow,这种方法有时候能绕过上传时的CORS校验
3. 额外排查点
- 验证OpenAPI语法:虽然UI显示正常,但可能存在隐藏的语法问题,用Swagger Validator工具检查文件是否符合规范
- 确认SAS权限:如果你的OpenAPI关联了带SAS授权的资源,确保SAS令牌包含足够的写入权限(不过你的错误核心是CORS,这个优先级稍低)
内容的提问来源于stack exchange,提问作者Peter Reay
相关产品推荐
相关产品推荐

