Class S3ExpressChecksumInterceptor

  • All Implemented Interfaces:
    ExecutionInterceptor

    public final class S3ExpressChecksumInterceptor
    extends Object
    implements ExecutionInterceptor
    S3Express has different checksum requirements compared to standard S3 calls. This interceptor modifies checksums only for S3Express calls.

    Checksums can be configured through model traits on operations as follows

    1. httpChecksumRequired - older setting used in S3Control -> not allowed
    2. httpChecksum is set and required -> always add CRC32 checksum even if algorithm is not specified.
    3. httpChecksum is set but not required -> if algorithm is not specified, behavior differs

    Note that, if httpChecksum is not present, no checksum may be calculated. PutBucketPolicy, DeleteObjects are examples of operations that require checksums. PutObject, UploadPart are examples of operations that do not require checksums.

    Special cases

    • PutObject -> always calculate CRC32
    • UploadPart -> do not calculate CRC32 if algorithm is missing, unless TM is used