import os import boto3 from botocore.exceptions import ClientError def test_minio_connection(): minio_server_url = os.environ.get('MINIO_SERVER_URL') access_key = os.environ.get('MINIO_ACCESS_KEY') secret_key = os.environ.get('MINIO_SECRET_KEY') secure = os.environ.get('MINIO_SECURE', 'False').lower() == 'true' print(f"Attempting to connect to MinIO at: {minio_server_url}") print(f"Using Access Key: {access_key}") print(f"Secure connection: {secure}") try: s3_client = boto3.client( 's3', endpoint_url=minio_server_url, aws_access_key_id=access_key, aws_secret_access_key=secret_key, use_ssl=secure, verify=False # For self-signed certs or local testing ) print("Attempting to list buckets...") response = s3_client.list_buckets() print("Successfully listed buckets!") print("Buckets:") for bucket in response['Buckets']: print(f" - {bucket['Name']}") except ClientError as e: print(f"MinIO ClientError: {e}") print(f"Error Code: {e.response.get('Error', {}).get('Code')}") print(f"Error Message: {e.response.get('Error', {}).get('Message')}") except Exception as e: print(f"An unexpected error occurred: {e}") if __name__ == "__main__": test_minio_connection()