如何将base64图片上传到GCloud Storage
How to upload base64 image to GCloud Storage
如何将网络中的图片上传到 gcloud Storage?
- 客户端:React 应用程序
- 服务器:Python(烧瓶)
客户端:我有一个文件浏览组件,我从本地驱动器中选择一个图像。然后,我将图片转为base64字符串,发送给服务器。
服务器端:
然后我上传 base64 图片:blob.upload_from_string(base64data, type="image/jpeg")
但是当我查看存储桶内部时,我看到了一个 1 像素的黑色图像。
问题
- 我可以将 base64 图像直接上传到我的存储桶中吗?
- 为什么我的图像被处理为黑色像素?哪里坏了?
最后我所做的是删除字符串的第一部分data:image/jpeg;base64,
,(当然它不一定是 jpeg.. 这只是一个例子)。
我将字符串的其余部分解码回图像,并也传递了 content_type。
解决了我的问题
我遇到了同样的问题,我就是这样做的
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()
如何将网络中的图片上传到 gcloud Storage?
- 客户端:React 应用程序
- 服务器:Python(烧瓶)
客户端:我有一个文件浏览组件,我从本地驱动器中选择一个图像。然后,我将图片转为base64字符串,发送给服务器。
服务器端:
然后我上传 base64 图片:blob.upload_from_string(base64data, type="image/jpeg")
但是当我查看存储桶内部时,我看到了一个 1 像素的黑色图像。
问题
- 我可以将 base64 图像直接上传到我的存储桶中吗?
- 为什么我的图像被处理为黑色像素?哪里坏了?
最后我所做的是删除字符串的第一部分data:image/jpeg;base64,
,(当然它不一定是 jpeg.. 这只是一个例子)。
我将字符串的其余部分解码回图像,并也传递了 content_type。
解决了我的问题
我遇到了同样的问题,我就是这样做的
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()