我想使用Python读取/写入Google Cloud Storage存储桶中的文件。
假设我在中有一个文件夹gs://my_project/data
。
如何列出以上文件夹中的文件夹和文件?
如何读写文件?
有几种方法可以执行这些操作。最常见的一种方法是使用适用于Python的本地Google Cloud Storage API 。
特别是,使用此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/'))
从中列出的第一个blob中读取gs://my_project/data
。
target_blob = blobs[0]
# read as string
read_output = target_blob.download_as_string()
要写入新的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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句