Interface Checksummer
-
- All Known Implementing Classes:
FlexibleChecksummer,PrecomputedSha256Checksummer
public interface ChecksummerAn interface for defining how a checksum is formed from a payload synchronously and asynchronously.The implementation may choose to also manipulate the request with the checksum, such as adding it as a header. Note: Currently, checksummers set the X_AMZ_CONTENT_SHA256 header for all requests. It is not strictly required to add the headers to all AWS requests - it's required for S3 and a couple of other select use cases. The pre-SRA implementation has a stricter set of rules for when to add the header. Being more restrictive with adding the header would require restructuring the signer / checksummer design.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description CompletableFuture<org.reactivestreams.Publisher<ByteBuffer>>checksum(org.reactivestreams.Publisher<ByteBuffer> payload, SdkHttpRequest.Builder request)Given a payload, asynchronously calculate a checksum and promise to add it to the request.voidchecksum(ContentStreamProvider payload, SdkHttpRequest.Builder request)Given a payload, calculate a checksum and add it to the request.static Checksummercreate()Get a default implementation of a checksummer, which calculates the SHA-256 checksum and places it in the x-amz-content-sha256 header.static ChecksummerforFlexibleChecksum(String precomputedSha256, ChecksumAlgorithm checksumAlgorithm)Get a flexible checksummer that performs two checksums: the given checksum-algorithm and a precomputed checksum from the given checksum string.static ChecksummerforFlexibleChecksum(ChecksumAlgorithm checksumAlgorithm)Get a flexible checksummer that performs two checksums: the given checksum-algorithm and the SHA-256 checksum.static ChecksummerforNoOp()static ChecksummerforPrecomputed256Checksum(String precomputedSha256)Get a precomputed checksummer which places the precomputed checksum to the x-amz-content-sha256 header.
-
-
-
Method Detail
-
create
static Checksummer create()
Get a default implementation of a checksummer, which calculates the SHA-256 checksum and places it in the x-amz-content-sha256 header.
-
forFlexibleChecksum
static Checksummer forFlexibleChecksum(ChecksumAlgorithm checksumAlgorithm)
Get a flexible checksummer that performs two checksums: the given checksum-algorithm and the SHA-256 checksum. It places the SHA-256 checksum in x-amz-content-sha256 header, and the given checksum-algorithm in the x-amz-checksum-[name] header.
-
forPrecomputed256Checksum
static Checksummer forPrecomputed256Checksum(String precomputedSha256)
Get a precomputed checksummer which places the precomputed checksum to the x-amz-content-sha256 header.
-
forFlexibleChecksum
static Checksummer forFlexibleChecksum(String precomputedSha256, ChecksumAlgorithm checksumAlgorithm)
Get a flexible checksummer that performs two checksums: the given checksum-algorithm and a precomputed checksum from the given checksum string. It places the precomputed checksum in x-amz-content-sha256 header, and the given checksum-algorithm in the x-amz-checksum-[name] header.
-
forNoOp
static Checksummer forNoOp()
-
checksum
void checksum(ContentStreamProvider payload, SdkHttpRequest.Builder request)
Given a payload, calculate a checksum and add it to the request.
-
checksum
CompletableFuture<org.reactivestreams.Publisher<ByteBuffer>> checksum(org.reactivestreams.Publisher<ByteBuffer> payload, SdkHttpRequest.Builder request)
Given a payload, asynchronously calculate a checksum and promise to add it to the request.
-
-