Answers: <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>
  
Answers: CC BY-SA 4.0
Answers: 2022-03-14T23:54:44.390Z
Answers: 2022-03-14T23:54:44.390Z
Answers: questionto42
Body: <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>
  
Tags: <google-cloud-platform><google-cloud-storage>
Title: "Retrieve a blob, and its metadata": Does the get_blob() already cause file size dependent traffic on the Google Cloud Platform?
UserDisplayName: questionto42
ThreadText: # "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](https://cloud.google.com/storage/docs/viewing-editing-metadata#view) --> "Code Samples" --> "Python": `Retrieve a blob, and its metadata`.
  
  The full code:
  
  ```py
  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!)](https://serverfault.com/a/1090964/607547) 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](https://cloud.google.com/storage/docs/viewing-editing-metadata#view) --> "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!)](https://serverfault.com/questions/1090609/reading-only-the-metadata-of-a-file-in-a-google-cloud-storage-bucket-into-a-clou).
  
  
  ---
  
  