Как получить метаданные из Google Cloud Storage Bucket с помощью Google Cloud Storage Client - PullRequest
0 голосов
/ 18 июня 2019

Я хочу создать в python функцию, которая помогает перечислять метаданные с помощью функций клиентской библиотеки Google Cloud Storage

Я уже создал функцию, которая выводит список сегментов. Я просто хочу отобразить метаданные сегментов, как показано здесь https://cloud.google.com/storage/docs/json_api/v1/buckets#resource


     for bucket in self.client.list_buckets():
         print(bucket)
#  this list the all the buckets 

Я хочу что-то вроде этого

  def meta(self):
      bucket_name="sample"
    //It should print the metadata of the bucket not the metadata of object inside the bucket 

Ответы [ 2 ]

4 голосов
/ 18 июня 2019

Существует "защищенный" элемент google.cloud.storage.Client, который представляет собой карту свойств сегмента, точно соответствующую искомому документу API.Он может быть изменен, поскольку его нет в открытом API, но вы можете получить четкое представление о том, что доступно прямо сейчас.Вот фрагмент:

#! /usr/bin/env python

from pprint import pprint
from typing import Dict

from google.cloud import storage

BUCKET_NAME = "your-bucket-here"

def get_bucket_metadata(bucket_name: str, gcs: storage.Client) -> Dict[str, str]:
    bucket = gcs.get_bucket(bucket_name)
    return bucket._properties

def main():
    gcs = storage.Client()
    metadata = get_bucket_metadata(BUCKET_NAME, gcs)
    pprint(metadata)

if __name__ == "__main__":
    main()

Я нашел это, запустив print(dir(bucket)) и изучив доступные методы и свойства.Вы можете найти других, которые вас так интересуют.

Вот пример вывода:

{'etag': 'CAE=',
 'iamConfiguration': {'bucketPolicyOnly': {'enabled': False}},
 'id': 'your-bucket-here',
 'kind': 'storage#bucket',
 'location': 'US-WEST1',
 'metageneration': '1',
 'name': 'your-bucket-here',
 'projectNumber': '264682420247',
 'selfLink': 'https://www.googleapis.com/storage/v1/b/your-bucket-here',
 'storageClass': 'REGIONAL',
 'timeCreated': '2019-02-20T21:53:30.130Z',
 'updated': '2019-02-20T21:53:30.130Z'}

HTH.

0 голосов
/ 18 июня 2019

Вы можете найти список методов, которые могут быть вызваны для класса google.cloud.storage.bucket.Bucket здесь .

Например:

from google.cloud import storage

storage_client = storage.Client()
bucket_name = 'my-bucket'
bucket = storage_client.get_bucket(bucket_name)

print(bucket.name)
print(bucket.time_created)
print(bucket.project_number)
print(bucket.cors)

...
...