old_contents: #!/usr/bin/env python
  
  # Copyright 2019 Google Inc. All Rights Reserved.
  #
  # Licensed under the Apache License, Version 2.0 (the 'License');
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  import sys
  
  # [START storage_get_metadata]
  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)
      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("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
              )
          )
  
  
  # [END storage_get_metadata]
  
  if __name__ == "__main__":
      blob_metadata(bucket_name=sys.argv[1], blob_name=sys.argv[2])
  
new_contents: #!/usr/bin/env python
  
  # Copyright 2019 Google Inc. All Rights Reserved.
  #
  # Licensed under the Apache License, Version 2.0 (the 'License');
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  import sys
  
  # [START storage_get_metadata]
  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)
      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
              )
          )
  
  
  # [END storage_get_metadata]
  
  if __name__ == "__main__":
      blob_metadata(bucket_name=sys.argv[1], blob_name=sys.argv[2])
  
subject: Update storage_get_metadata.py (#4615)