4

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!

bkang61wk
  • 43
  • 1
  • 1
  • 4

2 Answers2

13

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)
Chris Stryczynski
  • 30,145
  • 48
  • 175
  • 286
Serge Hendrickx
  • 1,416
  • 9
  • 15
  • I was making the mistake of using the "prefix" parameter with a leading forward-slash, this quickly revealed that it is not expecting a leading forward-slash, thanks! – Steven Jul 24 '19 at 17:45
1

What do you see if you:

for blob in bucket.list_blobs():
    print(blob)
    print(blob.name)
GAEfan
  • 11,244
  • 2
  • 17
  • 33