Description
Acknowledgements
- I have searched (https://github.com/aws/aws-sdk/issues?q=is%3Aissue) for past instances of this issue
- I have verified all of my SDK modules are up-to-date (you can perform a bulk update with
go get -u github.com/aws/aws-sdk-go-v2/...
)
Describe the bug
After upgrading to the following AWS SDK versions
github.com/aws/aws-sdk-go-v2 v1.33.0
github.com/aws/aws-sdk-go-v2/service/s3 v1.73.2
...
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.2 // indirect
I've started to see frequent logging of this warning when retrieving objects from S3:
SDK 2025/01/20 10:45:24 WARN Response has no supported checksum. Not validating response payload.
I saw in the checksum v1.5.0
changelog the new default algorithm is CRC32. However, after uploading an object to an S3 bucket using the AWS Console I see that the CRC-64NVME
function is used to automatically add a checksum as per the docs, and retrieving that object using the SDK via:
params := &s3.GetObjectInput{
Bucket: &bucket,
Key: &key,
}
resp, err := s3Client.GetObject(ctx, params)
I see the WARN
log message above. Is CRC-64NVME
not supported by the SDK or does something else need to be configured for the SDK to not log this warning?
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
Expected no warning log after upgrading the SDK modules.
Current Behavior
Warning log is printed every time we get an object from S3.
Reproduction Steps
Manually upload an onbject to S3 without a checksum value, resulting in the CRC-64NVME
function to be used. Fetch the file using the Go SDK:
func main() {
bucket := "my-bucket"
key := "my-key"
cfg, _ := config.LoadDefaultConfig(context.Background())
client := s3.NewFromConfig(cfg)
params := &s3.GetObjectInput{
Bucket: &bucket,
Key: &key,
}
_, _ = client.GetObject(context.Background(), params)
}
Possible Solution
No response
Additional Information/Context
No response
AWS Go SDK V2 Module Versions Used
module sdk-bug
go 1.23.4
require (
github.com/aws/aws-sdk-go-v2/config v1.29.1
github.com/aws/aws-sdk-go-v2/service/s3 v1.73.2
)
require (
github.com/aws/aws-sdk-go-v2 v1.33.0 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.54 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.24 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.28 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.28 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.28 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.9 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.24.11 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.10 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.33.9 // indirect
github.com/aws/smithy-go v1.22.1 // indirect
)
Compiler and Version used
go version go1.23.4 darwin/arm64
Operating System and version
MacOSX 14.7.1