Облачное хранилище Google Python list_blob () не печатает список объектов

#python #google-app-engine #google-cloud-storage #google-cloud-platform #google-cloud-python

#python #google-app-engine #google-облачное хранилище #google-облачная платформа #google-cloud-python

Вопрос:

Я новичок в Python и Google Cloud Storage. Я пишу скрипт на python для получения списка файлов из корзины облачного хранилища Google, используя клиентскую библиотеку Google Cloud Python, и функция list_blobs () из класса Bucket работает не так, как я ожидал.

https://googlecloudplatform.github.io/google-cloud-python/stable/storage-buckets.html

Вот мой код на python:

 from google.cloud import storage
from google.cloud.storage import Blob

client = storage.Client.from_service_account_json(service_account_json_key_path, project_id)
bucket = client.get_bucket(bucket_id)
print(bucket.list_blobs())
  

Если я правильно понял документацию, print(bucket.list_blobs()) должен напечатать что-то вроде этого: [‘testfile.txt ‘, ‘testfile2.txt ‘].

Однако мой скрипт напечатал это: «google.cloud.storage.bucket.Объект _BlobIterator в 0x7fdfdbcac590 «

документация delete_blob() содержит пример кода, такой же, как у меня. https://googlecloudplatform.github.io/google-cloud-python/stable/storage-buckets.html

Я не уверен, что я здесь делаю не так. Любые указатели / примеры / ответы будут высоко оценены. Спасибо!

Ответ №1:

Пример функции списка:

 def list_blobs(bucket_name):
    """Lists all the blobs in the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)

    blobs = bucket.list_blobs()

    for blob in blobs:
        print(blob.name)
  

Комментарии:

1. Я допустил ошибку, используя параметр «prefix» с ведущей косой чертой, это быстро показало, что он не ожидает ведущей косой черты, спасибо!

Ответ №2:

Что вы увидите, если:

 for blob in bucket.list_blobs():
    print(blob)
    print(blob.name)