You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vercel部署服务器安全存储密钥JSON文件并配置环境变量?

解决Vercel部署Next.js + GCP存储桶的凭据配置问题

核心思路

Vercel部署环境中无法直接存储JSON文件,也不需要通过文件路径引用GCP凭据。正确做法是将GCP服务账号JSON文件的完整内容作为环境变量的直接值,而非文件路径。

方法一:通过Vercel仪表盘配置

  • 打开项目Vercel仪表盘,进入「Settings」→「Environment Variables」
  • 点击「Add」新建环境变量:
    • Name:设为GOOGLE_CLOUD_KEY_FILE(和本地环境变量名一致)
    • Value:打开本地GCP服务账号JSON文件,复制全部内容粘贴进去
    • 选择需应用该变量的环境(Production/Preview/Development)
  • 点击「Save」保存后重新部署项目

方法二:通过Vercel CLI配置

无需使用自定义参数,用标准命令将JSON文件内容导入为secret:

vercel secrets add GOOGLE_CLOUD_KEY_FILE "$(cat path/to/your/service-account.json)"

之后将该secret关联到项目环境变量:

vercel env add GOOGLE_CLOUD_KEY_FILE production

按提示选择刚创建的secret即可。

代码适配调整

在Next.js代码中区分本地和生产环境的凭据读取逻辑:

import { Storage } from '@google-cloud/storage';

let storage;
if (process.env.NODE_ENV === 'development') {
  // 本地开发:通过文件路径读取
  storage = new Storage({
    keyFilename: process.env.GOOGLE_CLOUD_KEY_FILE,
  });
} else {
  // Vercel生产环境:解析环境变量中的JSON内容
  storage = new Storage({
    credentials: JSON.parse(process.env.GOOGLE_CLOUD_KEY_FILE),
  });
}

内容的提问来源于stack exchange,提问作者OWolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:01:19