@@ -25,8 +25,8 @@ import org.junit.jupiter.params.ParameterizedTest
2525import org.junit.jupiter.params.provider.CsvSource
2626import org.junit.jupiter.params.provider.MethodSource
2727import org.springframework.http.ContentDisposition
28+ import software.amazon.awssdk.checksums.DefaultChecksumAlgorithm
2829import software.amazon.awssdk.core.async.AsyncRequestBody
29- import software.amazon.awssdk.core.checksums.Algorithm
3030import software.amazon.awssdk.core.sync.RequestBody
3131import software.amazon.awssdk.services.s3.S3AsyncClient
3232import software.amazon.awssdk.services.s3.S3Client
@@ -313,7 +313,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
313313 @S3VerifiedSuccess(year = 2025 )
314314 fun testPutGetHeadDeleteObjects_nonExistentKey (testInfo : TestInfo ) {
315315 val key = UPLOAD_FILE_NAME
316- val uploadFile = File (UPLOAD_FILE_NAME )
316+ File (UPLOAD_FILE_NAME )
317317 val bucketName = givenBucket(testInfo)
318318 givenObject(bucketName, key)
319319
@@ -463,7 +463,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
463463 @S3VerifiedSuccess(year = 2025 )
464464 fun testPutObject_getObjectAttributes (testInfo : TestInfo ) {
465465 val uploadFile = File (UPLOAD_FILE_NAME )
466- val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), Algorithm .SHA1 )
466+ val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), DefaultChecksumAlgorithm .SHA1 )
467467 val bucketName = givenBucket(testInfo)
468468
469469 val eTag = s3Client.putObject({
@@ -499,7 +499,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
499499 val uploadFile = File (UPLOAD_FILE_NAME )
500500 val bucketName = givenBucket(testInfo)
501501
502- val eTag = s3Client.putObject({
502+ s3Client.putObject({
503503 it.bucket(bucketName)
504504 it.key(UPLOAD_FILE_NAME )
505505 it.metadata(mapOf (" key1" to " value1" , " key2" to " value2" ))
@@ -519,20 +519,17 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
519519 @S3VerifiedSuccess(year = 2025 )
520520 @ParameterizedTest
521521 @MethodSource(value = [" checksumAlgorithms" ])
522- fun testPutObject_checksumAlgorithm_http (checksumAlgorithm : ChecksumAlgorithm ) {
523- if (checksumAlgorithm != ChecksumAlgorithm .SHA256 ) {
524- // TODO: find out why the SHA256 checksum sent by the Java SDKv2 is wrong and this test is failing...
525- testChecksumAlgorithm(SAMPLE_FILE , checksumAlgorithm, s3ClientHttp)
526- testChecksumAlgorithm(SAMPLE_FILE_LARGE , checksumAlgorithm, s3ClientHttp)
527- testChecksumAlgorithm(TEST_IMAGE , checksumAlgorithm, s3ClientHttp)
528- testChecksumAlgorithm(TEST_IMAGE_LARGE , checksumAlgorithm, s3ClientHttp)
529- }
522+ fun testPutObject_checksumAlgorithm_http (checksumAlgorithm : software.amazon.awssdk.checksums.spi.ChecksumAlgorithm ) {
523+ testChecksumAlgorithm(SAMPLE_FILE , checksumAlgorithm, s3ClientHttp)
524+ testChecksumAlgorithm(SAMPLE_FILE_LARGE , checksumAlgorithm, s3ClientHttp)
525+ testChecksumAlgorithm(TEST_IMAGE , checksumAlgorithm, s3ClientHttp)
526+ testChecksumAlgorithm(TEST_IMAGE_LARGE , checksumAlgorithm, s3ClientHttp)
530527 }
531528
532529 @S3VerifiedSuccess(year = 2025 )
533530 @ParameterizedTest
534531 @MethodSource(value = [" checksumAlgorithms" ])
535- fun testPutObject_checksumAlgorithm_https (checksumAlgorithm : ChecksumAlgorithm ) {
532+ fun testPutObject_checksumAlgorithm_https (checksumAlgorithm : software.amazon.awssdk.checksums.spi. ChecksumAlgorithm ) {
536533 testChecksumAlgorithm(SAMPLE_FILE , checksumAlgorithm, s3Client)
537534 testChecksumAlgorithm(SAMPLE_FILE_LARGE , checksumAlgorithm, s3Client)
538535 testChecksumAlgorithm(TEST_IMAGE , checksumAlgorithm, s3Client)
@@ -541,21 +538,21 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
541538
542539 private fun GetPutDeleteObjectIT.testChecksumAlgorithm (
543540 testFileName : String ,
544- checksumAlgorithm : ChecksumAlgorithm ,
541+ checksumAlgorithm : software.amazon.awssdk.checksums.spi. ChecksumAlgorithm ,
545542 s3Client : S3Client ,
546543 ) {
547544 val uploadFile = File (testFileName)
548- val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm.toAlgorithm() )
545+ val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm)
549546 val bucketName = givenBucket(randomName)
550547
551548 s3Client.putObject({
552549 it.bucket(bucketName)
553550 it.key(testFileName)
554- it.checksumAlgorithm(checksumAlgorithm)
551+ it.checksumAlgorithm(checksumAlgorithm.toAlgorithm() )
555552 },
556553 RequestBody .fromFile(uploadFile)
557554 ).also {
558- val putChecksum = it.checksum(checksumAlgorithm)
555+ val putChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )
559556 assertThat(putChecksum).isNotBlank
560557 assertThat(putChecksum).isEqualTo(expectedChecksum)
561558 }
@@ -565,7 +562,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
565562 it.key(testFileName)
566563 it.checksumMode(ChecksumMode .ENABLED )
567564 }.use {
568- val getChecksum = it.response().checksum(checksumAlgorithm)
565+ val getChecksum = it.response().checksum(checksumAlgorithm.toAlgorithm() )
569566 assertThat(getChecksum).isNotBlank
570567 assertThat(getChecksum).isEqualTo(expectedChecksum)
571568 }
@@ -575,7 +572,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
575572 it.key(testFileName)
576573 it.checksumMode(ChecksumMode .ENABLED )
577574 }.also {
578- val headChecksum = it.checksum(checksumAlgorithm)
575+ val headChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )
579576 assertThat(headChecksum).isNotBlank
580577 assertThat(headChecksum).isEqualTo(expectedChecksum)
581578 }
@@ -584,7 +581,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
584581 @S3VerifiedSuccess(year = 2025 )
585582 @ParameterizedTest
586583 @MethodSource(value = [" checksumAlgorithms" ])
587- fun testPutObject_checksumAlgorithm_async_http (checksumAlgorithm : ChecksumAlgorithm ) {
584+ fun testPutObject_checksumAlgorithm_async_http (checksumAlgorithm : software.amazon.awssdk.checksums.spi. ChecksumAlgorithm ) {
588585 testChecksumAlgorithm_async(SAMPLE_FILE , checksumAlgorithm, s3AsyncClientHttp)
589586 testChecksumAlgorithm_async(SAMPLE_FILE_LARGE , checksumAlgorithm, s3AsyncClientHttp)
590587 testChecksumAlgorithm_async(TEST_IMAGE , checksumAlgorithm, s3AsyncClientHttp)
@@ -604,7 +601,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
604601 @S3VerifiedSuccess(year = 2025 )
605602 @ParameterizedTest
606603 @MethodSource(value = [" checksumAlgorithms" ])
607- fun testPutObject_checksumAlgorithm_async_https (checksumAlgorithm : ChecksumAlgorithm ) {
604+ fun testPutObject_checksumAlgorithm_async_https (checksumAlgorithm : software.amazon.awssdk.checksums.spi. ChecksumAlgorithm ) {
608605 testChecksumAlgorithm_async(SAMPLE_FILE , checksumAlgorithm, s3AsyncClient)
609606 testChecksumAlgorithm_async(SAMPLE_FILE_LARGE , checksumAlgorithm, s3AsyncClient)
610607 testChecksumAlgorithm_async(TEST_IMAGE , checksumAlgorithm, s3AsyncClient)
@@ -623,21 +620,21 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
623620
624621 private fun GetPutDeleteObjectIT.testChecksumAlgorithm_async (
625622 testFileName : String ,
626- checksumAlgorithm : ChecksumAlgorithm ,
623+ checksumAlgorithm : software.amazon.awssdk.checksums.spi. ChecksumAlgorithm ,
627624 s3Client : S3AsyncClient ,
628625 ) {
629626 val uploadFile = File (testFileName)
630- val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm.toAlgorithm() )
627+ val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm)
631628 val bucketName = givenBucket(randomName)
632629
633630 s3Client.putObject({
634631 it.bucket(bucketName)
635632 it.key(testFileName)
636- it.checksumAlgorithm(checksumAlgorithm)
633+ it.checksumAlgorithm(checksumAlgorithm.toAlgorithm() )
637634 },
638635 AsyncRequestBody .fromFile(uploadFile)
639636 ).join().also {
640- val putChecksum = it.checksum(checksumAlgorithm)
637+ val putChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )
641638 assertThat(putChecksum).isNotBlank
642639 assertThat(putChecksum).isEqualTo(expectedChecksum)
643640 }
@@ -647,7 +644,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
647644 it.key(testFileName)
648645 it.checksumMode(ChecksumMode .ENABLED )
649646 }.use {
650- val getChecksum = it.response().checksum(checksumAlgorithm)
647+ val getChecksum = it.response().checksum(checksumAlgorithm.toAlgorithm() )
651648 assertThat(getChecksum).isNotBlank
652649 assertThat(getChecksum).isEqualTo(expectedChecksum)
653650 }
@@ -657,7 +654,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
657654 it.key(testFileName)
658655 it.checksumMode(ChecksumMode .ENABLED )
659656 }.also {
660- val headChecksum = it.checksum(checksumAlgorithm)
657+ val headChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )
661658 assertThat(headChecksum).isNotBlank
662659 assertThat(headChecksum).isEqualTo(expectedChecksum)
663660 }
@@ -670,25 +667,26 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
670667 ChecksumAlgorithm .SHA256 -> this .checksumSHA256(checksum)
671668 ChecksumAlgorithm .CRC32 -> this .checksumCRC32(checksum)
672669 ChecksumAlgorithm .CRC32_C -> this .checksumCRC32C(checksum)
673- // ChecksumAlgorithm.CRC64_NVME -> this.checksumCRC64NVME(checksum)
670+ ChecksumAlgorithm .CRC64_NVME -> this .checksumCRC64NVME(checksum)
674671 else -> error(" Unknown checksum algorithm" )
675672 }
676673
677674 @S3VerifiedSuccess(year = 2025 )
678675 @ParameterizedTest
679676 @MethodSource(value = [" checksumAlgorithms" ])
680- fun testPutObject_checksum (checksumAlgorithm : ChecksumAlgorithm , testInfo : TestInfo ) {
677+ fun testPutObject_checksum (checksumAlgorithm : software.amazon.awssdk.checksums.spi.ChecksumAlgorithm ,
678+ testInfo : TestInfo ) {
681679 val uploadFile = File (UPLOAD_FILE_NAME )
682- val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm.toAlgorithm() )
680+ val expectedChecksum = DigestUtil .checksumFor(uploadFile.toPath(), checksumAlgorithm)
683681 val bucketName = givenBucket(testInfo)
684682
685683 s3Client.putObject({
686- it.checksum(expectedChecksum, checksumAlgorithm)
684+ it.checksum(expectedChecksum, checksumAlgorithm.toAlgorithm() )
687685 it.bucket(bucketName).key(UPLOAD_FILE_NAME )
688686 },
689687 RequestBody .fromFile(uploadFile)
690688 ).also {
691- val putChecksum = it.checksum(checksumAlgorithm)!!
689+ val putChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )!!
692690 assertThat(putChecksum).isNotBlank
693691 assertThat(putChecksum).isEqualTo(expectedChecksum)
694692 }
@@ -698,7 +696,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
698696 it.key(UPLOAD_FILE_NAME )
699697 it.checksumMode(ChecksumMode .ENABLED )
700698 }.use {
701- val getChecksum = it.response().checksum(checksumAlgorithm)
699+ val getChecksum = it.response().checksum(checksumAlgorithm.toAlgorithm() )
702700 assertThat(getChecksum).isNotBlank
703701 assertThat(getChecksum).isEqualTo(expectedChecksum)
704702 }
@@ -708,7 +706,7 @@ internal class GetPutDeleteObjectIT : S3TestBase() {
708706 it.key(UPLOAD_FILE_NAME )
709707 it.checksumMode(ChecksumMode .ENABLED )
710708 }.also {
711- val headChecksum = it.checksum(checksumAlgorithm)
709+ val headChecksum = it.checksum(checksumAlgorithm.toAlgorithm() )
712710 assertThat(headChecksum).isNotBlank
713711 assertThat(headChecksum).isEqualTo(expectedChecksum)
714712 }
0 commit comments