如何为Backblaze B2的b2_delete_file_version接口配置CORS规则?
问题原因
- Backblaze B2原生的CORS规则目前仅支持4类上传、下载操作的跨域配置,
b2_delete_file_version属于管理类接口,不在官方支持的CORS允许操作列表内,因此直接将接口名加入CORS规则会报错,前端直接调用必然触发浏览器跨域拦截。 - Postman能正常请求是因为它属于桌面客户端工具,不会强制执行浏览器的同源策略,和接口本身的权限没有关系。
可行解决方案
方案1:业务服务端做反向代理(生产环境最推荐)
在你的业务域名对应的服务端新增代理路由,前端将删除请求发送到同域名下的代理接口,由服务端将请求转发到Backblaze B2的b2_delete_file_version接口,服务端之间的HTTP调用不存在跨域限制,你可以在转发过程中统一处理鉴权逻辑,避免把B2的密钥暴露在前端。
方案2:切换使用S3兼容API
Backblaze B2完整支持S3兼容API,你可以改用S3模式的DeleteObject接口执行删除操作,S3兼容模式下的CORS规则支持配置DELETE方法的跨域权限,只要在存储桶的S3 CORS配置中允许你的来源域名的DELETE请求,即可直接从前端调用删除接口,不会触发跨域拦截。
方案3:本地调试临时方案
如果是本地开发调试场景,可以安装支持跨域的浏览器插件临时关闭同源策略,该方案仅适用于本地测试,绝对不能用于生产环境。
内容的提问来源于stack exchange,提问作者Rabie Daddi
相关产品推荐
相关产品推荐

