我正在尝试使用python google.cloud.storage api访问我的google存储桶,但获得例外:
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)
我在GCP中创建了一个服务帐户,将其定义为项目所有者和编辑者,将其定义为存储对象创建者和查看者。我还将其添加为特定的桶对象admin,creator和viewer。我通过凭证页面为此帐户创建了一个私钥(json),我尝试将其用于python客户端。这些都没有奏效。 python代码附在下面:
from google.cloud import storage
client = storage.Client.from_service_account_json('service_account_private_key.json')
bucket = client.get_bucket('bucket-name')
blob = bucket.get_blob('text.txt')
print(blob.download_as_string())
答案 0 :(得分:0)
您的证书似乎有问题。您可以使用以下代码重现它:
import requests
requests.get(
# Arbitrary Google API URL
'https://www.googleapis.com/discovery/v1/apis/storage/v1/rest')
最有可能的情况是,您的系统要么不信任签署Google密钥的证书颁发机构(不太可能),要么就是在防火墙后面用自己的(非常可能)交换真实证书。您可以尝试禁用证书检查,这是您不希望在生产中执行的,以查看是否存在问题:
import requests
requests.get(
'https://www.googleapis.com/discovery/v1/apis/storage/v1/rest',
verify=False)