如何为Django-storages与GCE配置GS_CREDENTIALS及应用凭证?
如何为基于Django-storages和GCE的Web应用创建并配置GS_CREDENTIALS凭证
我来一步步帮你搞定这个配置,流程其实清晰明了,跟着下面的步骤走就行:
第一步:在GCP控制台创建服务账号并生成密钥
- 登录Google Cloud控制台,导航到「IAM与管理」>「服务账号」页面
- 点击「创建服务账号」,填写好名称(比如
django-storage-sa)和描述,完成后点击「创建并继续」 - 为这个服务账号分配合适的Cloud Storage权限:如果需要读写存储桶内容,推荐选择Storage Object Admin;如果仅需只读访问,选Storage Object Viewer即可,分配完成后点击「继续」
- 跳过添加用户/群组的步骤,直接点击「完成」回到服务账号列表
- 找到刚创建的服务账号,点击右侧「密钥」选项卡,再点击「添加密钥」>「创建新密钥」
- 密钥类型选择「JSON」,点击「创建」——此时浏览器会自动下载一个JSON格式的密钥文件,务必妥善保存,不要泄露或丢失
第二步:配置Django项目
首先确保你已经安装了必要的依赖包:
pip install django-storages google-cloud-storage
接下来有两种配置GS_CREDENTIALS的方式,按需选择:
方式一:直接在settings.py中指定密钥文件路径
在你的Django项目settings.py中添加以下配置:
import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent # 配置GS凭证 GS_CREDENTIALS = os.path.join(BASE_DIR, "你的密钥文件名.json") # 其他必要的GCS配置 GS_BUCKET_NAME = "你的GCS存储桶名称" DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
方式二:使用环境变量(推荐用于生产环境)
这种方式更安全,避免把密钥文件路径硬编码到配置文件中:
- Linux/macOS终端:
export GOOGLE_APPLICATION_CREDENTIALS="/绝对路径/到/你的密钥文件.json"
- Windows命令提示符:
set GOOGLE_APPLICATION_CREDENTIALS=C:\绝对路径\到\你的密钥文件.json
配置好环境变量后,settings.py中无需手动指定GS_CREDENTIALS——django-storages会自动读取GOOGLE_APPLICATION_CREDENTIALS环境变量的值。
一些关键注意事项
- 确保你的GCS存储桶的IAM权限与服务账号的权限匹配,否则会出现访问被拒绝的错误
- 生产环境中绝对不要把密钥文件提交到Git等版本控制系统,建议使用
python-dotenv配合.env文件来管理环境变量 - 如果遇到权限相关的问题,先检查GCP控制台中服务账号的权限配置,以及存储桶的IAM访问控制设置
内容的提问来源于stack exchange,提问作者rprasad
相关产品推荐
相关产品推荐

