如何将base64映像上传到GCloud Storage

时间:2019-03-24 16:59:37

标签: python base64 storage gcloud

如何将图像从网络上传到gcloud存储?

  • 客户端:React应用
  • 服务器:Python(烧瓶)

客户端:我有一个文件浏览组件,可以从本地驱动器中选择一个映像。然后,我将图像转换为base64字符串,然后将其发送到服务器。

服务器端: 然后,我上传base64图片:blob.upload_from_string(base64data, type="image/jpeg")

但是当我向水桶里看时,我看到一个1个黑色像素的图像。

问题

  • 我可以直接在存储桶中上传base64图像吗?
  • 为什么我的图像被处理为黑色像素?它在哪里破裂?

2 个答案:

答案 0 :(得分:0)

最后,我要做的是删除字符串data:image/jpeg;base64,的第一部分(当然,它不一定是jpeg。它只是一个例子)。 我将字符串的其余部分解码回一幅图像,并且还传递了content_type。

那解决了我的问题

答案 1 :(得分:0)

我遇到了同样的问题,这就是我所做的

import base64, re

bucket = storage.bucket()
blob = bucket.blob(path)
regex = r"(?<=data:)(.*)(?=;)"
split = image.split('base64')
format_image = re.findall(regex, split[0])[0]
base64_image = base64.b64decode(split[1])
blob.upload_from_string(base64_image, content_type=format_image)
# Opt : if you want to make public access from the URL
blob.make_public()