IBM Cloud Object Storage: получение размера корзины с помощью интерфейса командной строки

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

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

2 ответа

COS S3 API не возвращает информацию о размере для ведер. Таким образом, 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>

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

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

mc du cos/$BUCKET

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

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

curl "https://config.cloud-object-storage.cloud.ibm.com/v1/b/$BUCKET" \
     -H 'Authorization: bearer $TOKEN'
Другие вопросы по тегам