python - 如何从 Python 脚本上传字节图像到 Google Cloud Storage

标签 python opencv google-cloud-platform google-cloud-storage

我想通过 python 脚本将图像上传到 Google Cloud Storage。这是我的代码:

from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery

scopes = ['https://www.googleapis.com/auth/devstorage.full_control']
credentials = ServiceAccountCredentials.from_json_keyfile_name('serviceAccount.json', scop
es)
service = discovery.build('storage','v1',credentials = credentials)

body = {'name':'my_image.jpg'}

req = service.objects().insert(
   bucket='my_bucket', body=body,
   media_body=googleapiclient.http.MediaIoBaseUpload(
      gcs_image, 'application/octet-stream'))

resp = req.execute()

如果 gcs_image = open('img.jpg', 'r') 代码可以正常工作并正确地将我的图像保存在 Cloud Storage 上。如何直接上传字节图像? (例如来自 OpenCV/Numpy 数组:gcs_image = cv2.imread('img.jpg'))

最佳答案

在我的例子中,我想将一个 PDF 文档从 bytes 上传到 Cloud Storage。

当我尝试下面的操作时,它创建了一个文本文件,其中包含我的字节字符串。

blob.upload_from_string(bytedata)

为了使用我必须做的字节串创建一个实际的 PDF 文件:

blob.upload_from_string(bytedata, content_type='application/pdf')

我的字节数据是 b64 编码的,所以我也先用 b64 解码。

关于python - 如何从 Python 脚本上传字节图像到 Google Cloud Storage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078088/

相关文章:

python - 是否可以将值解压到多个函数中?

python - 如何在多索引数据框中选择第一级最后一个键中的行?

python - linux写的编译shell文件是什么

java - 如何比较并发现两个直方图是否相同?

python - 导入cv2时,Google的Cloud Datalab中此奇怪错误消息的原因是什么

opencv - 有没有办法在openCV中禁用TBB?

c++ - OpenCV FAST 检测器

python-3.x - 如何通过谷歌云功能触发云存储中的特定扩展文件

docker - GCC - VM 机器 - 分配更多/dev/shm 内存

java - 如何将java项目的maven Artifact 部署/托管到Google Cloud Storage?