尝试使用Python来获取和遍历我拥有的Cloud Storage存储桶中的所有文件。我正在使用官方图书馆google-cloud-storage
。
使用gsutil
,我可以运行诸如gsutil ls gs://my-composer-bucket/dags/composer_utils/
之类的命令。 google-cloud-storage
库是否提供与gsutil ls
等效的方法?我想使用Python客户端,而不是使用gsutil
(不想在Docker映像中安装和认证GCloud SDK)。
我尝试了一些不同的操作,这些操作使我对blob的工作方式感到困惑:
>>> dag_folder_blob = cloud_composer_bucket.blob(bucket, 'dags/')
>>> dag_folder_blob.exists()
True
>>> util_folder_blob = cloud_composer_bucket.blob(bucket, 'dags/composer_utils/') # directory exists
>>> util_folder_blob.exists()
False
>>> util_file_blob = cloud_composer-bucket.blob(bucket, 'dags/composer_utils/__init__.py')
>>> util_file_blob.exists()
True
答案 0 :(得分:3)
您将要使用Bucket对象的list_blobs方法。进一步了解listing objects in Cloud Storage。
答案 1 :(得分:1)
# replicating command: gsutil ls gs://<bucketName>/<prefix>
from google.cloud import storage
bucket = storage.Client(<proj>).bucket(<bucketName>)
for key in bucket.list_blobs(prefix=<prefix>):
print key