<p>There is no traffic of the file content if you just get the blob and its metadata.</p>
<pre><code>blob = bucket.get_blob(blob_name)
</code></pre>
<p>does not yet upload the file to the cloud function since it is used for the metadata example query: <a href="https://cloud.google.com/storage/docs/viewing-editing-metadata#view" rel="nofollow noreferrer">View and edit object metadata</a> --&gt; &quot;Code Samples&quot; --&gt; &quot;Python&quot;. These code samples show it.</p>
<p>For more details, see <a href="https://serverfault.com/questions/1090609/reading-only-the-metadata-of-a-file-in-a-google-cloud-storage-bucket-into-a-clou">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!)</a>.</p>

CC BY-SA 4.0
2022-03-14T23:54:44.390Z
2022-03-14T23:54:44.390Z
questionto42
<p>Quote from the Python code example at <a href="https://cloud.google.com/storage/docs/viewing-editing-metadata#view" rel="nofollow noreferrer">View and edit object metadata</a> --&gt; &quot;Code Samples&quot; --&gt; &quot;Python&quot;: <code>Retrieve a blob, and its metadata</code>.</p>
<p>The full code:</p>
<pre class="lang-py prettyprint-override"><code>from google.cloud import storage


def blob_metadata(bucket_name, blob_name):
    &quot;&quot;&quot;Prints out a blob's metadata.&quot;&quot;&quot;
    # 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(&quot;Blob: {}&quot;.format(blob.name))
    print(&quot;Bucket: {}&quot;.format(blob.bucket.name))
    print(&quot;Storage class: {}&quot;.format(blob.storage_class))
    print(&quot;ID: {}&quot;.format(blob.id))
    print(&quot;Size: {} bytes&quot;.format(blob.size))
    print(&quot;Updated: {}&quot;.format(blob.updated))
    print(&quot;Generation: {}&quot;.format(blob.generation))
    print(&quot;Metageneration: {}&quot;.format(blob.metageneration))
    print(&quot;Etag: {}&quot;.format(blob.etag))
    print(&quot;Owner: {}&quot;.format(blob.owner))
    print(&quot;Component count: {}&quot;.format(blob.component_count))
    print(&quot;Crc32c: {}&quot;.format(blob.crc32c))
    print(&quot;md5_hash: {}&quot;.format(blob.md5_hash))
    print(&quot;Cache-control: {}&quot;.format(blob.cache_control))
    print(&quot;Content-type: {}&quot;.format(blob.content_type))
    print(&quot;Content-disposition: {}&quot;.format(blob.content_disposition))
    print(&quot;Content-encoding: {}&quot;.format(blob.content_encoding))
    print(&quot;Content-language: {}&quot;.format(blob.content_language))
    print(&quot;Metadata: {}&quot;.format(blob.metadata))
    print(&quot;Custom Time: {}&quot;.format(blob.custom_time))
    print(&quot;Temporary hold: &quot;, &quot;enabled&quot; if blob.temporary_hold else &quot;disabled&quot;)
    print(
        &quot;Event based hold: &quot;,
        &quot;enabled&quot; if blob.event_based_hold else &quot;disabled&quot;,
    )
    if blob.retention_expiration_time:
        print(
            &quot;retentionExpirationTime: {}&quot;.format(
                blob.retention_expiration_time
            )
        )
</code></pre>
<p>From this <code>Retrieve a blob, and its metadata</code>, I read that blobs <em>might</em> 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 <a href="https://serverfault.com/a/1090964/607547">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!)</a> that there is no data loaded to the <em>Google Cloud Function</em> before calling <code>get_blob()</code> until you call <code>blob.download_to_filename()</code>, <code>blob.download_as_string()</code> or <code>blob.download_as_text()</code>. Is there still some traffic on the <em>Google Cloud Platform</em> when using <code>get_blob()</code>?</p>
<p>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.</p>
<p>Does the <code>get_blob()</code> already cause file size dependent traffic on the Google Cloud Platform?</p>

<google-cloud-platform><google-cloud-storage>
"Retrieve a blob, and its metadata": Does the get_blob() already cause file size dependent traffic on the Google Cloud Platform?
questionto42
# "Retrieve a blob, and its metadata": Does the get_blob() already cause file size dependent traffic on the Google Cloud Platform?

(Asked by: username_0 on 2022-01-25)

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?

**Tags:** google-cloud-platform, google-cloud-storage


---

## 1 answers

### Answer by username_0 on 2022-03-14. Score: 0 | Accepted answer

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!).


---

