将 Google 个凭据分配给存储在存储桶中的下载密钥

Assigning Google Credentials to downloaded keys stored in a storage bucket

我有一个 python 脚本可以访问 google 云上存储桶中的文件。我能够将 google 凭据分配给存储在我计算机上的 json 文件(密钥)。

os.environ['GOOGLE_APPLICATION_CREDENTIALS']=(r"C:\Users\Oladayo\Downloads\production-web-app-338223-02790f690292.json")

我正在尝试通过 google 云函数将脚本移动为 运行,我需要将 google 凭据重新分配给相同的 json 文件但已存储在存储桶中。这个我试过了

os.environ['GOOGLE_APPLICATION_CREDENTIALS']=('gs://storage_service_key/production-web-app-338223-02790f690292.json')

但我一直收到以下错误

DefaultCredentialsError:找不到文件 gs://storage_service_key/production-web-app-338223-02790f690292。json。

有人能帮忙吗?

不要添加 GOOGLE_APPLICATION_CREDENTIALS,而是在您的代码之外添加该环境变量,并让库的 ADC (the default credential detection) 检测到它。

在 Cloud Functions 上,您不必添加该环境变量。 Cloud Functions' metadata server 向库提供凭据,并且还会自动检测 ADC。

最棒的是,您不必将代码从本地更新到云端,它是完全透明的,而且库会为您完成这项工作!