0

Quote from the Python code example at View and edit object metadata --> "Code Samples" --> "Python": Retrieve a blob, and its metadata.

The full code:

from google.cloud import storage


def blob_metadata(bucket_name, blob_name):
    """Prints out a blob's metadata."""
    # bucket_name = 'your-bucket-name'
    # blob_name = 'your-object-name'

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

    # Retrieve a blob, and its metadata, from Google Cloud Storage.
    # Note that `get_blob` differs from `Bucket.blob`, which does not
    # make an HTTP request.
    blob = bucket.get_blob(blob_name)

    print("Blob: {}".format(blob.name))
    print("Bucket: {}".format(blob.bucket.name))
    print("Storage class: {}".format(blob.storage_class))
    print("ID: {}".format(blob.id))
    print("Size: {} bytes".format(blob.size))
    print("Updated: {}".format(blob.updated))
    print("Generation: {}".format(blob.generation))
    print("Metageneration: {}".format(blob.metageneration))
    print("Etag: {}".format(blob.etag))
    print("Owner: {}".format(blob.owner))
    print("Component count: {}".format(blob.component_count))
    print("Crc32c: {}".format(blob.crc32c))
    print("md5_hash: {}".format(blob.md5_hash))
    print("Cache-control: {}".format(blob.cache_control))
    print("Content-type: {}".format(blob.content_type))
    print("Content-disposition: {}".format(blob.content_disposition))
    print("Content-encoding: {}".format(blob.content_encoding))
    print("Content-language: {}".format(blob.content_language))
    print("Metadata: {}".format(blob.metadata))
    print("Custom Time: {}".format(blob.custom_time))
    print("Temporary hold: ", "enabled" if blob.temporary_hold else "disabled")
    print(
        "Event based hold: ",
        "enabled" if blob.event_based_hold else "disabled",
    )
    if blob.retention_expiration_time:
        print(
            "retentionExpirationTime: {}".format(
                blob.retention_expiration_time
            )
        )

From this Retrieve a blob, and its metadata, I read that blobs might already be more than metadata and more than the mere frame of the file object, so that they are already a loaded data object that leads to traffic on the Google Cloud Storage side at the size of the data. On the other hand, I see from Reading only the metadata of a file in a Google Cloud Storage bucket into a Cloud Function in Python (without loading the file or its data!) that there is no data loaded to the Google Cloud Function before calling get_blob() until you call blob.download_to_filename(), blob.download_as_string() or blob.download_as_text(). Is there still some traffic on the Google Cloud Platform when using get_blob()?

I am dealing with many large files try to log their metadata for further triggers inside and outside of GCP. I want to be sure that this get_blob() function's traffic is independent from the filesize of the file that it takes as the parameter.

Does the get_blob() already cause file size dependent traffic on the Google Cloud Platform?

1 Answer 1

0

There is no traffic of the file content if you just get the blob and its metadata.

blob = bucket.get_blob(blob_name)

does not yet upload the file to the cloud function since it is used for the metadata example query: View and edit object metadata --> "Code Samples" --> "Python". These code samples show it.

For more details, see Reading only the metadata of a file in a Google Cloud Storage bucket into a Cloud Function in Python (without loading the file or its data!).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.