如何在gcloud-aio Storage中使用Google应用默认凭据(ADC)认证?
用Application Default Credentials(ADC)认证gcloud-aio/storage
核心实现方式
gcloud-aio/storage原生支持ADC机制,无需手动传递令牌——它会自动调用google.auth的ADC流程完成认证。如果已经通过google.auth获取了凭据对象,也可以直接传入客户端初始化参数。
方法一:自动触发ADC(推荐)
直接初始化Storage或Bucket实例即可,库会自动按优先级加载ADC(环境变量>本地ADC文件>GCP服务元数据服务器):
from gcloud.aio.storage import Storage async def main(): storage = Storage() # 示例:列出项目下的存储桶 buckets = await storage.list_buckets(project='your-project-id') print(buckets)
方法二:手动传入已获取的ADC凭据
如果已经通过google.auth拿到了凭据对象,可在初始化Storage时通过credentials参数传入:
import google.auth from gcloud.aio.storage import Storage async def main(): # 获取ADC凭据,可指定所需权限范围 credentials, project_id = google.auth.default( scopes=['https://www.googleapis.com/auth/devstorage.read_write'] ) # 传入凭据初始化Storage storage = Storage(credentials=credentials, project=project_id) # 示例:获取指定存储桶信息 bucket = await storage.get_bucket('your-bucket-name') print(bucket)
注意事项
- 本地开发环境可通过
gcloud auth application-default login生成ADC凭据文件;GCP托管服务(如Cloud Functions、GCE)会自动从元数据服务器获取凭据,无需额外配置。 - 若需限定权限,务必在获取凭据时传入对应
scopes,避免过度授权。
内容的提问来源于stack exchange,提问作者John Heyer
相关产品推荐
相关产品推荐

