Compare commits

...

2 Commits

Author SHA1 Message Date
1fb6b89a5f Merge pull request 'Fix boto3 XAmzContentSHA256Mismatch errors with Ceph RadosGW' (#1) from fix/boto3-checksum-validation into master
Reviewed-on: #1
2026-01-08 23:07:51 +11:00
f0f3cfda50 Fix boto3 XAmzContentSHA256Mismatch errors with Ceph RadosGW
- Configure boto3 client with when_required checksum calculation/validation
- Resolves compatibility issues between boto3 v1.36+ and S3-compatible providers
- Fixes 502 errors when uploading artifacts to storage backend

Refs: https://github.com/boto/boto3/issues/4400
2026-01-08 23:04:19 +11:00

View File

@ -2,6 +2,7 @@ import os
import hashlib import hashlib
from urllib.parse import urlparse from urllib.parse import urlparse
import boto3 import boto3
from botocore.config import Config
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
from fastapi import HTTPException from fastapi import HTTPException
@ -26,6 +27,10 @@ class S3Storage:
endpoint_url=f"http{'s' if self.secure else ''}://{self.endpoint}", endpoint_url=f"http{'s' if self.secure else ''}://{self.endpoint}",
aws_access_key_id=self.access_key, aws_access_key_id=self.access_key,
aws_secret_access_key=self.secret_key, aws_secret_access_key=self.secret_key,
config=Config(
request_checksum_calculation="when_required",
response_checksum_validation="when_required"
)
) )
# Try to ensure bucket exists, but don't fail if MinIO isn't ready yet # Try to ensure bucket exists, but don't fail if MinIO isn't ready yet