blob.download_as_string()返回什么编码?

时间:2019-04-05 14:14:13

标签: python-2.7 encoding google-cloud-platform google-cloud-storage google-cloud-vision

我正在从Google存储空间下载一个字节字符串的文件,对其进行b64编码,然后将其用作Google Vision API的输入。

storage_client = storage.Client(project=[PROJECT])
bucket = storage_client.get_bucket([BUCKET])
blob = bucket.blob([KEY])

content = blob.download_as_string()
b64content = base64.b64encode(content)

client = vision.ImageAnnotatorClient()
image = vision.types.Image(content=b64content)

使用b64content时出现错误的图像错误。但是,如果我使用非base64内容,则对Vision API的调用将成功:

image = vision.types.Image(content=content)

blob.download_as_string()是否返回已进行base64编码的字节字符串?

1 个答案:

答案 0 :(得分:1)

简短的回答:不,它不是base64编码的。那么为什么它可以与未编码的字符串一起使用?

像使用Python Client一样,您不需要对字符串进行编码,如here所示。如果您以JSON(例如this one)的形式发布Vision API请求,则需要对其进行编码。这就是为什么不用base64.b64encode()就可以使它工作的原因。