Хранилище объектов IBM Cloud: получить размер корзины с помощью CLI

#ibm-cloud #object-storage #cloud-object-storage

#ibm-cloud #объект-хранилище #cloud-object-storage

Вопрос:

Я пытаюсь найти способ автоматизировать задачу получения размеров корзины COS в IBM Cloud.

У меня есть десятки корзин для разных учетных записей, но я все еще не смог найти способ получить эту информацию с помощью IBM Cloud COS CLI, просто другую информацию, например, имена корзин и т. Д.

Ответ №1:

API COS S3 не возвращает информацию о размере для корзин. Таким образом, CLI, основанный на API, также не возвращает информацию о размере.

Но вот косвенный способ определения размера корзины путем перебора размеров отдельных объектов в корзине

 ibmcloud cos objects --bucket <BUCKET_NAME> --output JSON | jq 'reduce (.Contents[] | to_entries[]) as {$key,$value} ({}; .[$key]  = $value) | .Size'
  

Выходные данные указаны в байтах

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

 ibmcloud cos buckets --output JSON
  

Примечание: Перед выполнением вышеуказанных команд не забудьте добавить CRN службы COS в конфигурацию с помощью приведенной ниже команды

 ibmcloud cos config crn --crn <SERVICE_CRN>
  

Комментарии:

1. Что касается последнего замечания, есть ли способ получить CRN с помощью CLI? Все, что я могу найти, это как перечислить элементы в каталоге служб ( ibmcloud catalog service cloud-object-storage ).

2. нашел это: ibmcloud resource service-instance <instance-name>

Ответ №2:

Ответ, который перебирает отдельные объекты, действительно является единственным (и, вероятно, лучшим) способом использования IBM Cloud CLI для поиска этой информации, но есть несколько других способов, которые стоит упомянуть для завершения.

Если вам нужно сделать это элегантно в командной строке, клиент Minio предоставляет синтаксис в стиле Linux:

 mc du cos/$BUCKET
  

Это возвращает размер корзины в MiB.

Кроме того, API настройки ресурсов COS напрямую возвращает bytes_used значение, без итерации по объектам за кулисами. Хотя официальной реализации CLI еще нет (хотя она находится в стадии разработки), относительно просто использовать cURL или httpie для запроса корзины.

 curl "https://config.cloud-object-storage.cloud.ibm.com/v1/b/$BUCKET" 
     -H 'Authorization: bearer $TOKEN'