如何将图像从网络上传到gcloud存储?
客户端:我有一个文件浏览组件,可以从本地驱动器中选择一个映像。然后,我将图像转换为base64字符串,然后将其发送到服务器。
服务器端:
然后,我上传base64图片:blob.upload_from_string(base64data, type="image/jpeg")
但是当我向水桶里看时,我看到一个1个黑色像素的图像。
答案 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()