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?