2022年6月8日水曜日

botocore でバケット配下の容量を取得する方法

botocore でバケット配下の容量を取得する方法

概要

前回は AWS CLI を使って取得する方法を紹介しました

今回は Python を使って取得する方法を紹介します

環境

  • Ubuntu 18.04
  • Python 3.10.2
  • botocore 1.24.11

サンプルコード

import boto3
import sys


class TestClient():

    def __init__(self):
        self.client = boto3.client(
            's3',
            region_name='us-east-1',
            endpoint_url='https://s3.compatible.api',
            aws_access_key_id='xxxx',
            aws_secret_access_key='xxx',
        )

    def list_objects(self, bucket):
        result = self.client.list_objects(
            Bucket=bucket
        )
        return sum([c['Size'] for c in result['Contents']])


if __name__ == '__main__':
    cli = TestClient()
    print(cli.list_objects(sys.argv[1]))

リスト内包記法を使っていますが Contents 内にある Size の値を取得して合算する感じになります

0 件のコメント:

コメントを投稿