feat(aws_s3): Add S3 compatibility environment variables for non-AWS services #198
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
AWS_S3_DISABLE_SSE=true
disables server-side encryption headers (x-amz-server-side-encryption
)AWS_S3_DISABLE_CHECKSUMS=true
disables checksum algorithm headers (x-amz-checksum-algorithm
)Problem
The current Convex backend hard-codes AWS-specific headers in S3 multipart upload operations:
ServerSideEncryption::Aes256
ChecksumAlgorithm::Crc32
These headers cause compatibility issues with S3-compatible services that don't support AWS-specific features, leading to multipart upload failures.
Solution
aws_utils
crate for S3 compatibility configurationaws_s3
storage implementation to conditionally add AWS headers based on environment variablesFiles Changed
crates/aws_utils/src/lib.rs
: Added environment variable configuration and accessor functionscrates/aws_s3/src/storage.rs
: Updated multipart upload methods to conditionally add headersTesting
Benefits
🤖 Generated with Claude Code