NotImplemented: Header ‘x-amz-checksum-crc32’ with value ‘Cu/HOQ==’ not implemented
What is the issue or error you’re encountering
Upon updating to @aws-sdk/client-s3 v3.729.0 which requires checksum algorithms on UploadPart and PutObject commands, I get this issue with every request. I can also reproduce the issue on version 3.726.1 by setting the ChecksumAlgorithm to any valid value.
What steps have you taken to resolve the issue?
I have downgraded to @aws-sdk/client-s3 version 3.726.1 for now, but this is not sustainable long-term. Please either add support for checksum algorithms on upload or support for an alternate way to actually upload files on newer versions of @aws-sdk/client-s3 without this problem.
What are the steps to reproduce the issue?
Install @aws-sdk/client-s3 v3.729.0
Create S3 client, configure it to an R2 account
Use a PutObjectCommand to upload any object to any bucket
Feature - This change enhances integrity protections for new SDK requests to S3. S3 SDKs now support the CRC64NVME checksum algorithm, full object checksums for multipart S3 objects, and new default integrity protections for S3 requests.
The team has been communicating in Discord. They said they’re working on checksum support. I’m hoping they publish a status page about this as well, and we asked them to do so.
The S3 Libs should also let you specify the checksum calculation to avoid this issue for now, for example for the client-s3 lib
(taken from Harshil Agrawal in discord)
Or you can downgrade to the versions before the ones released yesterday.
For CLI, I think your only option is to downgrade to avoid entirely.
I use @aws-sdk/client-s3 for Node. The config requestChecksumCalculation: 'WHEN_REQUIRED' works for me when putting files, but it doesn’t work for getting files. So, I needed to create a middleware to also remove the x-amz-checksum-mode header. For me, the combination of the requestChecksumCalculation config and removing the x-amz-checksum-mode header makes everything work great again!
This issue was closed as not planned because they’ve decided to not fix their own broken config flag. It seems the only mitigation right now for those intending on deleting files in their R2 buckets is either sketchy header-removing middleware or simply downgrading to v3.726.1 until Cloudflare adds checksum support on their end (see status page).