minioClientPool.py 616 B

1234567891011121314151617181920
  1. from minio import Minio
  2. from queue import Queue
  3. from urllib.parse import urlparse
  4. class MinioClientPool:
  5. def __init__(self, endpoint, access_key, secret_key, pool_size=5):
  6. self.pool = Queue(maxsize=pool_size)
  7. self.endpoint = endpoint
  8. for _ in range(pool_size):
  9. client = Minio(endpoint, access_key=access_key, secret_key=secret_key, secure=False)
  10. self.pool.put(client)
  11. def get_client(self) -> Minio:
  12. return self.pool.get()
  13. def release_client(self, client):
  14. self.pool.put(client)
  15. def get_ip_address(self):
  16. return self.endpoint