From cac3d2f16b91a6986411a66db63992c224b2db3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?d=20=F0=9F=94=B9?= Date: Fri, 3 Apr 2026 18:08:39 +0800 Subject: [PATCH] fix(s3): sanitize spaces in team_alias prefix to prevent 403 errors --- litellm/integrations/s3_v2.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/litellm/integrations/s3_v2.py b/litellm/integrations/s3_v2.py index 405bf9698cc..91955655118 100644 --- a/litellm/integrations/s3_v2.py +++ b/litellm/integrations/s3_v2.py @@ -7,6 +7,7 @@ NOTE 1: S3 does not provide a BATCH PUT API endpoint, so we create tasks to uplo """ import asyncio +import re from datetime import datetime from typing import List, Optional, cast @@ -472,8 +473,10 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): if user_api_key_alias: prefix_components.append(user_api_key_alias) - # Construct full prefix path + # Construct full prefix path (sanitize characters invalid in S3 keys) prefix_path = "/".join(prefix_components) + # Replace spaces and other problematic characters to prevent S3 signing errors + prefix_path = re.sub(r"[\s]+", "_", prefix_path) if prefix_path: prefix_path += "/"