Google Cloud Storage Python list_blob() not printi

2020-04-21 08:44发布

问题:

I am Python and Google Cloud Storage newbie. I am writing a python script to get a file list from Google Cloud Storage bucket using Google Cloud Python Client Library and list_blobs() function from Bucket class is not working as I expected.

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

Here is my python code:

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

If I understood the documentation correctly, print(bucket.list_blobs()) should print something like this: ['testfile.txt', 'testfile2.txt'].

However, my script printed this: "google.cloud.storage.bucket._BlobIterator object at 0x7fdfdbcac590"

delete_blob() documentation has example code same as mine. https://googlecloudplatform.github.io/google-cloud-python/stable/storage-buckets.html

I am not sure what I am doing wrong here. Any pointers/examples/answers will be greatly appreciated. Thanks!

回答1:

An example list function:

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)


回答2:

What do you see if you:

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