Node.js中Google Cloud Storage SDK报DECODER routines错误求助
解决Node.js中Google Cloud Storage SDK的error:1E08010C:DECODER routines::unsupported错误
以下是针对该错误的可行解决方案:
1. 处理Node.js与OpenSSL兼容性问题
这个错误常出现在Node.js 17及以上版本(默认使用OpenSSL 3.0),旧加密算法支持被限制。两种解决方式:
- 降级Node.js版本:切换到16.x LTS版本,该版本使用OpenSSL 1.1.1,兼容性更好。
- 添加启动参数:启动项目时加入兼容参数,强制使用旧版OpenSSL提供器:
NODE_OPTIONS="--openssl-legacy-provider" node your-app-file.js
2. 修复私钥格式问题
环境变量中的私钥经常会丢失换行符,导致解析失败:
修改代码中credentials的private_key字段,把转义的\n替换成真实换行符:
const credentials = { // ...其他配置项 private_key: process.env.PRIVATE_KEY.replace(/\\n/g, '\n'), // ...其他配置项 };
同时确认私钥完整包含-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----首尾标识,无多余空格或截断。
3. 更新依赖包
相关依赖的旧版本可能未适配OpenSSL 3.0,执行以下命令升级:
npm update google-auth-library gtoken jwa
4. 验证环境变量加载
在代码中临时打印credentials.private_key,确认私钥格式正确,环境变量没有加载异常(比如dotenv配置错误导致变量截断)。
内容的提问来源于stack exchange,提问作者Fares
相关产品推荐
相关产品推荐

