NextJS调用Cloudinary API出现unknown api_key报错求助
解决Cloudinary API返回"unknown api_key"的问题
问题分析
你遇到的unknown api_key错误,核心原因是环境变量加载异常,结合你的代码和.env.local配置,主要问题出在环境变量的格式上。
解决方案
1. 修正.env.local的变量格式
你的.env.local文件中,变量值被双引号包裹,这会导致环境变量实际包含引号字符(比如process.env.CLOUDINARY_API_KEY的值是"mykey"而非mykey),Cloudinary无法识别带引号的API密钥。
修改.env.local为:
CLOUDINARY_CLOUD_NAME=mycloudinary CLOUDINARY_API_KEY=mykey CLOUDINARY_API_SECRET=mysecret
2. 重启Next.js开发服务器
修改.env文件后,Next.js不会自动重新加载环境变量,必须重启开发服务器才能让新的配置生效。
3. 验证环境变量是否正确加载
在代码中添加日志,确认环境变量值是否正确:
export async function getStaticProps() { // 新增日志验证 console.log('Loaded API Key:', process.env.CLOUDINARY_API_KEY); console.log('Loaded API Secret:', process.env.CLOUDINARY_API_SECRET); const results = await fetch(`https://api.cloudinary.com/v1_1/${process.env.CLOUDINARY_CLOUD_NAME}/resources/image`, { headers: { Authorization: `Basic ${Buffer.from(`${process.env.CLOUDINARY_API_KEY}:${process.env.CLOUDINARY_API_SECRET}`).toString('base64')}` } }).then(r => r.json()); console.log('results', results); return { props: {} } }
如果日志输出的是带引号的值,说明.env配置的问题还没解决;如果是正常的密钥值,再测试API请求。
4. 核对Cloudinary凭证
最后再确认一次Cloudinary控制台中的API密钥、密钥密码和云名称,确保和.env.local中的值完全一致(注意大小写、空格等细节)。
内容的提问来源于stack exchange,提问作者carlsks203
相关产品推荐
相关产品推荐

