fixes s3_v2 verify

This commit is contained in:
Ishaan Jaffer 2025-11-03 13:19:49 -08:00
parent df6e084984
commit a6fbaba579

View file

@ -57,12 +57,7 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM):
f"in init s3 logger - s3_callback_params {litellm.s3_callback_params}"
)
# IMPORTANT: We use a concurrent limit of 1 to upload to s3
# Files should get uploaded BUT they should not impact latency of LLM calling logic
self.async_httpx_client = get_async_httpx_client(
llm_provider=httpxSpecialProvider.LoggingCallback,
)
# Initialize S3 params first to get the correct s3_verify value
self._init_s3_params(
s3_bucket_name=s3_bucket_name,
s3_region_name=s3_region_name,
@ -85,6 +80,16 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM):
)
verbose_logger.debug(f"s3 logger using endpoint url {s3_endpoint_url}")
# IMPORTANT
# Create httpx client AFTER _init_s3_params so we have the correct s3_verify value
verbose_logger.debug(
f"s3_v2 logger creating async httpx client with s3_verify={self.s3_verify}"
)
self.async_httpx_client = get_async_httpx_client(
llm_provider=httpxSpecialProvider.LoggingCallback,
params={"ssl_verify": self.s3_verify}
)
asyncio.create_task(self.periodic_flush())
self.flush_lock = asyncio.Lock()
@ -147,9 +152,11 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM):
litellm.s3_callback_params.get("s3_api_version") or s3_api_version
)
self.s3_use_ssl = (
litellm.s3_callback_params.get("s3_use_ssl", True) or s3_use_ssl
litellm.s3_callback_params.get("s3_use_ssl", True) if litellm.s3_callback_params.get("s3_use_ssl") is not None else s3_use_ssl
)
self.s3_verify = (
litellm.s3_callback_params.get("s3_verify") if litellm.s3_callback_params.get("s3_verify") is not None else s3_verify
)
self.s3_verify = litellm.s3_callback_params.get("s3_verify") or s3_verify
self.s3_endpoint_url = (
litellm.s3_callback_params.get("s3_endpoint_url") or s3_endpoint_url
)
@ -279,6 +286,9 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM):
verbose_logger.debug(
f"s3_v2 logger - uploading data to s3 - {batch_logging_element.s3_object_key}"
)
verbose_logger.debug(
f"s3_v2 logger - s3_verify setting: {self.s3_verify}"
)
# Prepare the URL
url = f"https://{self.s3_bucket_name}.s3.{self.s3_region_name}.amazonaws.com/{batch_logging_element.s3_object_key}"
@ -477,7 +487,9 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM):
# Prepare the signed headers
signed_headers = dict(aws_request.headers.items())
httpx_client = _get_httpx_client()
httpx_client = _get_httpx_client(
params={"ssl_verify": self.s3_verify} if self.s3_verify is not None else None
)
# Make the request
response = httpx_client.put(url, data=json_string, headers=signed_headers)
response.raise_for_status()