我想通过 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/