gpt4 book ai didi

python-3.x - 如何使用 Python 访问存储桶 GCS 的子文件夹中的文件?

转载 作者:行者123 更新时间:2023-12-04 14:08:27 29 4
gpt4 key购买 nike

from google.cloud import storage
import os
bucket = client.get_bucket('path to bucket')

上面的代码将我连接到我的存储桶,但我正在努力连接存储桶中的特定文件夹。

我正在尝试此代码的变体,但没有运气:
blob = bucket.get_blob("training/bad")
blob = bucket.get_blob("/training/bad")
blob = bucket.get_blob("path to bucket/training/bad")

我希望能够访问坏子文件夹中的图像列表,但我似乎无法这样做。
尽管阅读了文档,但我什至不完全理解 blob 是什么,并且根据教程对它进行了排序。

谢谢你。

最佳答案

如果您想找 Blob (文件)存在于特定 下前缀 (子目录)您可以指定 prefixdelimiter list_blobs() 的参数功能

请参阅以下来自 Google Listing Objects example 的示例(还有 GitHub snippet )

def list_blobs_with_prefix(bucket_name, prefix, delimiter=None):
"""Lists all the blobs in the bucket that begin with the prefix.

This can be used to list all blobs in a "folder", e.g. "public/".

The delimiter argument can be used to restrict the results to only the
"files" in the given "folder". Without the delimiter, the entire tree under
the prefix is returned. For example, given these blobs:

/a/1.txt
/a/b/2.txt

If you just specify prefix = '/a', you'll get back:

/a/1.txt
/a/b/2.txt

However, if you specify prefix='/a' and delimiter='/', you'll get back:

/a/1.txt

"""
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)

blobs = bucket.list_blobs(prefix=prefix, delimiter=delimiter)

print('Blobs:')
for blob in blobs:
print(blob.name)

if delimiter:
print('Prefixes:')
for prefix in blobs.prefixes:
print(prefix)

关于python-3.x - 如何使用 Python 访问存储桶 GCS 的子文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739302/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com