Как получить размер объекта BLOB-объекта Cloud Storage? - PullRequest
0 голосов
/ 25 июня 2019

Я мог бы получить размер от gsutil.

✗ gsutil du gs://<bucket>/test/1561402306
100          gs://<bucket>/test/1561402306

Я мог бы подтвердить длину и содержание через download_as_string. Однако свойство size всегда возвращает None из SDK / API.

Как я могу получить размер объекта Cloud Storage без загрузки?

from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.blob(blob_name)
print(len(blob.download_as_string().decode()))
print(blob.size)

Выход:

100
None

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Вы должны использовать get_blob(), чтобы получить BLOB-объект blob = bucket.get_blob(blob_name) вместо bucket.blob(), который является конструктором фабрики для объекта BLOB-объекта.

Посмотрите на разницу между двумя функциями на get_blob () и blob () .

1 голос
/ 25 июня 2019

для получения метаданных объекта вы должны использовать метод "get_blob" при получении BLOB-объекта.

Я отредактировал ваш код так:

from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket(bucket_name)
blob = bucket.get_blob(blob_name) #here you use the method get_blob
print(len(blob.download_as_string().decode()))
print(blob.size)

Теперь вы сможете получить доступ к размеру объекта, а также к другим метаданным, для получения дополнительной информации об этом см. Эту документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...