我的用例非常简单,我正在从我的REST API获取原始JSON响应并将其保留为python中的字典,我必须将这些数据写入Google云存储。 除了"upload_from_string"选项之外,还有其他方法吗?
为了将数据上传到云存储,Python blobs 对象中只有 3 种方法:
- Blob.upload_from_file((
- Blob.upload_from_filename((
- Blob.upload_from_string((
从dict中,您可以选择将其转换为字符串并使用upload_from_string
方法。或者您也可以将其存储在本地的/tmp
目录中(在内存文件系统中(,然后使用file
目的方法。
如果要压缩内容和/或使用将字典转储到文件中的专用库,则可能具有更多文件功能。
我有一个类似的用例。我想将一些字典格式的数据扔到谷歌云存储桶中。
我假设您已经创建了一个存储桶(如果您尝试以编程方式执行此操作,这是一项简单的任务(。
from google.cloud import storage
import json
import os
def upload_to_gcloud(data: dict):
"""
this function take a dictionary as input and uploads
it in a google cloud storage bucket
"""
## your service-account credentials as JSON file
os.environ['GOOLE_APPLICATION_CREDENTAILS'] = "YOUR-SERVICE-ACCOUNT-CREDENTIALS-AS-JSON"
## instane of the storage client
storage_client = storage.Client()
## instance of a bucket in your google cloud storage
bucket = storage_client.get_bucket("your-bucket-name")
## if you want to create a new file
blob = bucket.blob("filename-you-want-here")
## if there already exists a file
blob = bucket.get_blob("filename-of-that-file")
## uploading data using upload_from_string method
## json.dumps() serializes a dictionary object as string
blob.upload_from_string(json.dumps(data))
此方法适用于您可以呈现为字符串的任何数据。 如果要直接从本地文件系统上传文件,请改用 upload_from_filename((。
希望这有帮助!!