在App Engine上,无法直接获得GAE凭据,因为App Engine是一个托管服务,不允许访问敏感凭据。不过,你可以通过以下方法解决这个问题:
下面是一个使用服务账号进行身份验证的代码示例:
from google.cloud import storage
from google.oauth2 import service_account
# 定义服务账号凭据文件的路径
credentials = service_account.Credentials.from_service_account_file('path/to/service-account-file.json')
# 创建一个存储客户端,并使用服务账号凭据进行身份验证
client = storage.Client(credentials=credentials)
# 使用存储客户端执行操作
bucket = client.bucket('my-bucket')
blob = bucket.blob('my-object')
blob.upload_from_filename('path/to/local-file')
下面是一个使用环境变量进行身份验证的代码示例:
import os
from google.cloud import storage
# 从环境变量中读取凭据信息
credentials = {
'client_email': os.environ['GAE_CLIENT_EMAIL'],
'private_key': os.environ['GAE_PRIVATE_KEY'],
}
# 创建一个存储客户端,并使用凭据信息进行身份验证
client = storage.Client.from_service_account_info(credentials)
# 使用存储客户端执行操作
bucket = client.bucket('my-bucket')
blob = bucket.blob('my-object')
blob.upload_from_filename('path/to/local-file')
请注意,在使用环境变量时,你需要在App Engine的配置文件(例如app.yaml
)中定义这些环境变量,或者在App Engine控制台中设置它们。
无论你选择哪种方法,这些解决方案都可以帮助你在App Engine上使用GAE凭据进行身份验证和访问其他Google Cloud服务。