我正在使用 gcloud 为 Django 编写自定义文件存储。
并且在寻找服务帐户 JSON 的 gloud 路径方面存在问题。 我尝试使用 GOOGLE_APPLICATION_CREDENTIALS 变量:
GOOGLE_APPLICATION_CREDENTIALS = os.path.join(BASE_DIR, 'google.json')
但是没有效果。它总是在我项目的上层文件夹中查找 google.json(如果我把它放在那里,它工作正常)。我收到此错误:
oauth2client.client.ApplicationDefaultCredentialsError: File ../DjangoProjects/folder/google.json (pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
所以我的项目在 File ../DjangoProjects/folder/project_folder/google.json
那么,我该如何处理呢?
最佳答案
这只是为了澄清 Garrett Jones 的回答。这里可能会出现一些微妙的混淆:
在给定的代码示例中,GOOGLE_APPLICATION_CREDENTIALS
是一个 python 变量名。它的值应该是指向文件的环境变量的名称:
GOOGLE_APPLICATION_CREDENTIALS = "GOOGLE_APPLICATION_CREDENTIALS"
在此示例中,我们假设有一个名为“GOOGLE_APPLICATION_CREDENTIALS
”的环境变量,其值为文件路径(类似于“/home/anon/workspace/myProject/google_creds. json
")
可以使用特定于操作系统的方法或使用 python 本身在环境中设置环境变量,这可以在程序运行时修改环境(这就是 Adam 对 Garrett 答案的评论所展示的,使用 os.环境
).
关于python - 如何在云中为 python 覆盖 GOOGLE_APPLICATION_CREDENTIALS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33545019/