#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)