为了账号安全,请及时绑定邮箱和手机立即绑定

Google cloud get bucket - 适用于 cli 但不适用于 python

Google cloud get bucket - 适用于 cli 但不适用于 python

犯罪嫌疑人X 2022-12-27 15:31:11
我被要求与外部谷歌存储桶进行集成,我收到了一个凭据 json,在尝试这样做时 gsutil ls gs://bucket_name(在使用 creds json 配置自己之后)我收到了有效的响应,以及当我尝试将文件上传到存储桶中时。尝试使用 Python3 执行此操作时,它不起作用:在使用google-cloud-storage==1.16.0(也尝试过较新的版本)时,我正在做:project_id = credentials_dict.get("project_id")credentials = service_account.Credentials.from_service_account_info(credentials_dict)client = storage.Client(credentials=credentials, project=project_id)bucket = client.get_bucket(bucket_name)但是get_bucket在线上,我得到:google.api_core.exceptions.Forbidden: 403 GET https://www.googleapis.com/storage/v1/b/BUCKET_NAME?projection=noAcl: USERNAME@PROJECT_ID.iam.gserviceaccount.com does not have storage.buckets.get access to the Google Cloud Storage bucket.与我集成的外部合作伙伴说用户设置正确,并证明他们表明我可以使用gsutil.你能帮忙吗?知道可能是什么问题吗?
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

答案是信誉确实是错误的,但是当我尝试在客户端client.bucket(bucket_name)而不是client.get_bucket(bucket_name).



查看完整回答
反对 回复 2022-12-27
?
萧十郎

TA贡献1815条经验 获得超13个赞

请按照以下步骤正确设置适用于 Python 的 Cloud Storage 客户端库。通常,云存储库可以使用应用程序默认凭据或环境变量进行身份验证。


请注意,推荐使用的方法是使用环境变量设置身份验证(即,如果您使用的是 Linux:export GOOGLE_APPLICATION_CREDENTIALS="/path/to/[service-account-credentials].json"应该可行)并完全避免使用该service_account.Credentials.from_service_account_info()方法:


from google.cloud import storage


storage_client = storage.Client(project='project-id-where-the-bucket-is')

bucket_name = "your-bucket"

bucket = client.get_bucket(bucket_name)

应该可以简单地工作,因为身份验证是由客户端库通过环境变量处理的。


现在,如果您有兴趣显式使用服务帐户而不是使用service_account.Credentials.from_service_account_info()方法,您可以通过from_service_account_json()以下方式直接使用该方法:


from google.cloud import storage


# Explicitly use service account credentials by specifying the private key

# file.

storage_client = storage.Client.from_service_account_json(

    '/[service-account-credentials].json')

bucket_name = "your-bucket"

bucket = client.get_bucket(bucket_name)

在此处查找有关如何向您的应用程序提供凭据的所有相关详细信息。



查看完整回答
反对 回复 2022-12-27
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信