Редактировать:
Я отправил запрос на добавление функции в Public Issue Tracker .Тем временем можно использовать приведенный ниже код.
Я считаю, что нет команды gsutil
, которая могла бы показать вам общий размер по классу хранилища для корзины GCS.
Однако, используя* Клиентские библиотеки Cloud Storage для Python, я создал скрипт, который делает то, что вы просите:
from google.cloud import storage
import math
### SET THESE VARIABLES ###
PROJECT_ID = ""
CLOUD_STORAGE_BUCKET = ""
###########################
def _get_storage_client():
return storage.Client(
project=PROJECT_ID)
def convert_size(size_bytes):
if size_bytes == 0:
return "0 B"
size_name = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
i = int(math.floor(math.log(size_bytes, 1024)))
p = math.pow(1024, i)
s = round(size_bytes / p, 2)
return "%s %s" % (s, size_name[i])
def size_by_class():
client = _get_storage_client()
bucket = client.bucket(CLOUD_STORAGE_BUCKET)
blobs = bucket.list_blobs()
size_multi_regional = size_regional = size_nearline = size_coldline = 0
for blob in blobs:
if blob.storage_class == "MULTI_REGIONAL":
size_multi_regional = size_multi_regional + blob.size
if blob.storage_class == "REGIONAL":
size_regional = size_regional + blob.size
if blob.storage_class == "NEARLINE":
size_nearline = size_nearline + blob.size
if blob.storage_class == "COLDLINE":
size_coldline = size_coldline + blob.size
print("MULTI_REGIONAL: "+str(convert_size(size_multi_regional))+"\n"+
"REGIONAL: "+str(convert_size(size_regional)+"\n"+
"NEARLINE: "+str(convert_size(size_nearline))+"\n"+
"COLDLINE: "+str(convert_size(size_coldline))
))
if __name__ == '__main__':
size_by_class()
Для запуска этой программы из Google Cloud Shell , убедитесь, что вы ранее установили Клиентскую библиотеку для Python с:
pip install --upgrade google-cloud-storage
И чтобы предоставить учетные данные аутентификации для кода приложения, вы должны указать переменную среды GOOGLE_APPLICATION_CREDENTIALS
к местоположению файла JSON, который содержит учетную запись службы ключ:
export `GOOGLE_APPLICATION_CREDENTIALS`="/home/user/Downloads/[FILE_NAME].json"
Перед запуском сценария установите PROJECT_ID
в качестве идентификатора вашего проекта и CLOUD_STORAGE_BUCKET
на имя вашего GCS Bucket.
Запустите скрипт с python main.py
.Вывод должен быть примерно таким:
MULTI_REGIONAL: 1.0 GB
REGIONAL: 300 MB
NEARLINE: 200 MB
COLDLINE: 10 MB