Cha*_*han 4 python google-cloud-storage
我想用 Python 读/写 Google Cloud Storage 存储桶中的文件。
假设我在gs://my_project/data.
如何列出上述文件夹中的文件夹和文件?
如何读写文件?
有几种方法可以执行这些操作。最常见的一种是使用原生 Google Cloud Storage API for Python。
特别是,使用此 API 的第 0 步是设置对 GCP 的身份验证,包括设置服务帐户、下载其json凭据并设置指向它的环境变量:
export GOOGLE_APPLICATION_CREDENTIALS="[PATH-TO-JSON-CREDS]"
在 GCS 中,没有“目录”/“文件夹”的概念。只有桶和 blob/对象。尽管如此,/in blob 名称可用于模拟类似文件夹的层次结构。
列出来自 的 blob gs://my_project/data:
from google.cloud import storage
client = storage.Client()
bucket = client.bucket('my_project')
blobs = list(bucket.list_blobs(prefix='data/'))
Run Code Online (Sandbox Code Playgroud)
从 中列出的第一个 blob 中读取gs://my_project/data。
target_blob = blobs[0]
# read as string
read_output = target_blob.download_as_string()
Run Code Online (Sandbox Code Playgroud)
要写入新的 blob,我发现除了写入本地文件并从文件上传之外别无他法。
target_blob = bucket.blob('new_blob.txt')
local_tmp_path = 'tmp.txt'
# write string
with open(local_tmp_path, 'w') as f:
f.write('Hello World')
with open(local_tmp_path, 'r') as f:
target_blob.upload_from_file(f)
Run Code Online (Sandbox Code Playgroud)