S3Mock

A simple mock implementation of the AWS S3 API startable as Docker image, TestContainer, JUnit 4 rule, JUnit Jupiter extension or TestNG listener

APACHE-2.0 License

Stars
785

Bot releases are visible (Hide)

S3Mock - 3.9.1 Latest Release

Published by afranken 5 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Persist metadata for parts, validate checksum on multipart completion (fixes #1205)
  • Refactorings
    • Migrate Unit tests to Kotlin
    • Run ITs against real S3, fix code or tests in case of errors
      • Fix Checksums for Multiparts
      • Add ObjectOwnership config for Buckets, setting ACLs is not allowed otherwise
      • Fix StorageClass, it's not returned for most APIs if it's "STANDARD"
  • Version updates
    • Bump aws-v2.version from 2.25.49 to 2.25.59
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.720 to 1.12.729
    • Bump kotlin.version from 1.9.24 to 2.0.0
    • Bump alpine from 3.19.1 to 3.20.0 in /docker
    • Bump org.codehaus.mojo:exec-maven-plugin from 3.2.0 to 3.3.0
    • Bump com.github.ekryd.sortpom:sortpom-maven-plugin from 3.4.1 to 4.0.0
    • Bump license-maven-plugin-git.version from 4.4 to 4.5
    • Bump actions/checkout from 4.1.5 to 4.1.6
    • Bump github/codeql-action from 3.25.4 to 3.25.6
    • Bump step-security/harden-runner from 2.7.1 to 2.8.0

Full Changelog: https://github.com/adobe/S3Mock/compare/3.8.0...3.9.1

S3Mock - 3.8.0

Published by afranken 5 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Fix failing uploads after EOL detection refactoring (fixes #1840, #1842)
      • Adding additional tests for combinations of HTTP / HTTPS and sync / async clients with different test files
      • Known issue: using HTTP, AWS SDKv2 sends the wrong checksum for SHA256, leading uploads to fail
  • Version updates
    • Bump aws-v2.version from 2.25.39 to 2.25.49
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.709 to 1.12.720
    • Bump com.fasterxml.jackson:jackson-bom from 2.17.0 to 2.17.1
    • Bump kotlin.version from 1.9.23 to 1.9.24
    • Bump org.xmlunit:xmlunit-assertj3 from 2.9.1 to 2.10.0
    • Bump testcontainers.version from 1.19.7 to 1.19.8
    • Bump org.testng:testng from 7.10.1 to 7.10.2
    • Bump com.puppycrawl.tools:checkstyle from 10.15.0 to 10.16.0
    • Bump license-maven-plugin-git.version from 4.3 to 4.4
    • Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.1 to 3.1.2
    • Bump org.apache.maven.plugins:maven-install-plugin from 3.1.1 to 3.1.2
    • Bump step-security/harden-runner from 2.7.0 to 2.7.1
    • Bump actions/checkout from 4.1.4 to 4.1.5
    • Bump actions/dependency-review-action from 4.2.5 to 4.3.2
    • Bump ossf/scorecard-action from 2.3.1 to 2.3.3
    • Bump github/codeql-action from 3.25.3 to 3.25.4

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.7.3...3.8.0

S3Mock - 3.7.3

Published by afranken 6 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support large, chunked, unsigned, asynchronous uploads (fixes #1818)

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.7.2...3.7.3

S3Mock - 3.7.2

Published by afranken 6 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Calculate and validate checksums on upload (fixes #1827)
      • UploadPart API now also returns checksums, if available.

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.7.1...3.7.2

S3Mock - 3.7.1

Published by afranken 6 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Correctly handle chunked unsigned uploads (fixes #1662)
      • Known issue: when using one of the Async SDK clients, uploads sometimes fail when the file size is >16KB.
        Not yet sure why. Uploads <16KB work just fine.
    • Let Jetty handle "UNSAFE" characters in URIs, again (see #1686)
  • Version updates
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.698 to 1.12.709
    • Bump aws-v2.version from 2.25.28 to 2.25.39
    • Bump spring-boot.version from 3.2.4 to 3.2.5
    • Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.2 to 3.2.4
    • Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1
    • Bump github/codeql-action from 3.24.10 to 3.25.3
    • Bump actions/upload-artifact from 4.3.1 to 4.3.3
    • Bump actions/checkout from 4.1.2 to 4.1.4

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.6.0...3.7.1

S3Mock - 3.6.0

Published by afranken 6 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Return XML prolog and namespace in all responses (fixes #1754)
    • Explain in README.md how root property works with Docker. (fixes #1728)
  • Refactorings
    • Removal of JAX-B for AccessControlPolicy requests/responses.
      • Jackson-databind-xml 2.17.0 adds polymorphic (de-)serializiation through "xsi:type"
    • Jackson-annotation cleanup in POJOs
  • Version updates
    • Bump spring-boot.version from 3.2.3 to 3.2.4
    • Bump aws-v2.version from 2.24.9 to 2.25.28
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.665 to 1.12.698
    • Bump commons-io:commons-io from 2.15.1 to 2.16.1
    • Bump org.testng:testng from 7.9.0 to 7.10.1
    • Bump org.mockito.kotlin:mockito-kotlin from 5.2.1 to 5.3.1
    • Bump com.puppycrawl.tools:checkstyle from 10.14.0 to 10.15.0
    • Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.2
    • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0
    • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
    • Bump com.github.ekryd.sortpom:sortpom-maven-plugin from 3.4.0 to 3.4.1
    • Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
    • Bump actions/checkout from 4.1.1 to 4.1.2
    • Bump actions/setup-java from 4.1.0 to 4.2.1
    • Bump github/codeql-action from 3.24.6 to 3.24.10
    • Bump actions/dependency-review-action from 4.1.3 to 4.2.5
    • Bump maven from 3.8.5 to 3.9.6

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.5.2...3.6.0

S3Mock - 3.5.2

Published by afranken 7 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support key names that lead to request paths that do not comply to RFC3986 (fixes #1686)
  • Refactorings
    • Refactor IT usage of S3 clients, add more tests
    • Use ZGC and ZGenerationalGC when running in Docker
  • Version updates
    • Bump kotlin.version from 1.9.22 to 1.9.23
    • Bump testcontainers.version from 1.19.6 to 1.19.7
    • Bump github/codeql-action from 3.24.5 to 3.24.6
    • Bump actions/setup-java from 4.0.0 to 4.1.0
    • Bump com.puppycrawl.tools:checkstyle from 10.13.0 to 10.14.0

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.5.1...3.5.2

S3Mock - 3.5.1

Published by afranken 8 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support canned ACLs (fixes #1617)
  • Version updates
    • Bump spring-boot.version from 3.2.2 to 3.2.3
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.656 to 1.12.665
    • Bump aws-v2.version from 2.23.21 to 2.24.9
    • Bump testcontainers.version from 1.19.5 to 1.19.6
    • Bump io.fabric8:docker-maven-plugin from 0.43.4 to 0.44.0
    • Bump com.github.ekryd.sortpom:sortpom-maven-plugin from 3.3.0 to 3.4.0
    • Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0
    • Bump actions/dependency-review-action from 4.0.0 to 4.1.3
    • Bump github/codeql-action from 3.24.0 to 3.24.5

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.4.0...3.5.1

S3Mock - 3.4.0

Published by afranken 8 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support storage classes in APIs
    • Use "application/octet-stream" as default content-type
  • Refactorings
    • Use JDK21 as runtime in the Docker container
  • Version updates
    • Bump spring-boot.version from 3.2.1 to 3.2.2
    • Bump aws-v2.version from 2.22.7 to 2.23.21
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.627 to 1.12.656
    • Bump testcontainers.version from 1.19.3 to 1.19.5
    • Bump com.puppycrawl.tools:checkstyle from 10.12.6 to 10.13.0
    • Bump alpine from 3.19.0 to 3.19.1 in /docker
    • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.3 to 3.2.5
    • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5
    • Bump github/codeql-action from 3.22.12 to 3.24.0
    • Bump actions/upload-artifact from 4.0.0 to 4.3.1
    • Bump actions/dependency-review-action from 3.1.4 to 4.0.0
    • Bump step-security/harden-runner from 2.6.1 to 2.7.0

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.3.0...3.4.0

S3Mock - 3.3.0

Published by afranken 10 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support initial and existing buckets (fixes #1433)
    • Compile with "parameters=true" (fixes #1555)
  • Version updates
    • Bump spring-boot.version from 3.1.5 to 3.2.1
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.580 to 1.12.627
    • Bump aws-v2.version from 2.21.14 to 2.22.7
    • Bump commons-io:commons-io from 2.15.0 to 2.15.1
    • Bump testcontainers.version from 1.19.1 to 1.19.3
    • Bump kotlin.version from 1.9.20 to 1.9.22
    • Bump alpine from 3.18.4 to 3.19.0 in /docker
    • Bump org.testng:testng from 7.8.0 to 7.9.0
    • Bump org.mockito.kotlin:mockito-kotlin from 5.1.0 to 5.2.1
    • Bump com.puppycrawl.tools:checkstyle from 10.12.4 to 10.12.6
    • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.1 to 3.2.3
    • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.1 to 3.2.3
    • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.6.3
    • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.1
    • Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to 3.1.1
    • Bump actions/setup-java from 3.13.0 to 4.0.0
    • Bump step-security/harden-runner from 2.6.0 to 2.6.1
    • Bump actions/dependency-review-action from 3.1.0 to 3.1.4
    • Bump actions/upload-artifact from 3.1.3 to 4.0.0
    • Bump github/codeql-action from 2.22.5 to 3.22.12
    • Bump mvn version from 3.5.4 to 3.8.5

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.2.0...3.3.0

S3Mock - 3.2.0

Published by afranken 12 months ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Better description of S3Mock API usage and SDK usage (fixes #219, #125, #1196)
      • Presigned URLs were working all along.
      • Added documentation and tests.
    • Add ListObjectVersions API - dummy implementation (fixes #1215)
  • Version updates
    • Bump aws-v2.version from 2.20.115 to 2.21.14
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.519 to 1.12.580
    • Bump spring-boot.version from 3.1.0 to 3.1.5
    • Bump alpine from 3.18.2 to 3.18.4 in /docker
    • Bump testcontainers.version from 1.18.3 to 1.19.1
    • Bump kotlin.version from 1.9.0 to 1.9.20
    • Bump commons-io:commons-io from 2.13.0 to 2.15.0
    • Bump com.puppycrawl.tools:checkstyle from 10.12.2 to 10.12.4
    • Bump io.fabric8:docker-maven-plugin from 0.43.2 to 0.43.4
    • Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.3.0 to 3.4.1
    • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.0
    • Bump org.apache.maven.plugins:maven-dependency-plugin from 3.6.0 to 3.6.1
    • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.1
    • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.1.2 to 3.2.1
    • Bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.3.0 to 3.3.1
    • Bump org.apache.maven.plugins:maven-clean-plugin from 3.3.1 to 3.3.2
    • Bump license-maven-plugin-git.version from 4.2 to 4.3
    • Bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11
    • Bump org.mockito.kotlin:mockito-kotlin from 5.0.0 to 5.1.0
    • Bump actions/setup-java from 3.12.0 to 3.13.0
    • Bump actions/checkout from 3.5.3 to 4.1.1
    • Bump actions/upload-artifact from 3.1.2 to 3.1.3
    • Bump actions/dependency-review-action from 3.0.6 to 3.1.0
    • Bump github/codeql-action from 2.21.2 to 2.22.5
    • Bump docker/setup-qemu-action from 2.2.0 to 3.0.0
    • Bump step-security/harden-runner from 2.5.0 to 2.6.0
    • Bump ossf/scorecard-action from 2.2.0 to 2.3.1

What's Changed

New Contributors

Full Changelog: https://github.com/adobe/S3Mock/compare/3.1.0...3.2.0

S3Mock - 3.1.0

Published by afranken about 1 year ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Fixes various bugs, vulnerabilities, code smells, security hot spots etc found by Sonarqube
  • Refactorings
    • Scanned repo with StepSecurity tools
  • Version updates
    • Bump com.amazonaws:aws-java-sdk-s3 from 1.12.501 to 1.12.519
    • Bump aws-v2.version from 2.20.98 to 2.20.115
    • Bump com.github.ekryd.sortpom:sortpom-maven-plugin from 3.2.1 to 3.3.0
    • Bump io.fabric8:docker-maven-plugin from 0.43.0 to 0.43.2
    • Bump com.puppycrawl.tools:checkstyle from 10.12.1 to 10.12.2
    • Bump kotlin.version from 1.8.22 to 1.9.0
    • Bump github/codeql-action from 2.21.1 to 2.21.2

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/3.0.1...3.1.0

S3Mock - 3.0.1

Published by afranken about 1 year ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Fix startup on existing data folder issues (fixes #1245)
    • Return checksumAlgorithm in ListObjects / ListObjectsV2 (fixes #1220)

What's Changed

New Contributors

Full Changelog: https://github.com/adobe/S3Mock/compare/3.0.0...3.0.1

S3Mock - 3.0.0

Published by afranken over 1 year ago

3.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Refactorings
    • Use various Java language features introduced between JDK 8 and JDK 17
    • Use new Spring Boot 3 features
    • Use new Spring Framework 6 features
    • Dependency cleanup
    • Code cleanup
    • Deprecate JUnit 4 TestRule
      • This module will be removed in S3Mock 4.x
  • Version updates
    • Bump spring-boot.version from 2.7.13 to 3.1.0
      • This updates all Spring Boot dependencies as well
    • Bump Spring Framework to 6.0.9
    • Bump Java bytecode version from 8 to 17
      • This change is necessary, as Spring Framework 6 and Spring Boot 3 raise the baseline Java version from 8 to 17.

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.17.0...3.0.0

S3Mock - 2.17.0

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Add support for ChecksumAlgorithm (fixes #1123)
      • Support checksumAlgorithm where AWS SDK locally calculates the checksum and sends it as part of the request body.
      • Support checksum headers where clients can send an already calculated checksum for the backend to persist
      • Return checksum in getObject / putObject / headObject / getObjectAttributes
    • Consistent consumes / produces declarations (fixes #1208)
  • Version updates
    • Bump aws-v2.version from 2.20.96 to 2.20.98
    • Bump aws-java-sdk-s3 from 1.12.499 to 1.12.501

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.16.0...2.17.0

S3Mock - 2.16.0

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Add support for GetObjectAttributes API (fixes #536)
  • Version updates
    • Bump aws-v2.version from 2.20.94 to 2.20.96
    • Bump aws-java-sdk-s3 from 1.12.497 to 1.12.499
    • Bump maven-wrapper from 3.1.1 to 3.2.0

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.15.1...2.16.0

S3Mock - 2.15.1

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Store and return all encryption headers (fixes #1178)
  • Version updates
    • Bump aws-v2.version from 2.20.92 to 2.20.94
    • Bump aws-java-sdk-s3 from 1.12.494 to 1.12.497
    • Bump checkstyle from 10.12.0 to 10.12.1

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.14.0...2.15.1

S3Mock - 2.14.0

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Storage and retrieval headers like Content-Disposition (fixes #1163)
  • Refactorings
    • Test that persisted file length is equal to uploaded file length
      • This does not work if checksum validation is enabled (see #1123)
  • Version updates
    • Bump spring-boot.version from 2.7.12 to 2.7.13
    • Bump aws-v2.version from 2.20.86 to 2.20.92
    • Bump aws-java-sdk-s3 from 1.12.488 to 1.12.494
    • Bump maven-clean-plugin from 3.2.0 to 3.3.1

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.13.1...2.14.0

S3Mock - 2.13.1

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Correct Range header handling with Spring's HttpRange (fixes #1174)

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.13.0...2.13.1

S3Mock - 2.13.0

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Accept X-Amz-Meta headers regardless of case (fixes #1160)
  • Refactorings
    • Add junit-jupiter dependency to s3mock-testcontainers module
      • This was necessary because testcontainers 1.18.0 removed transitive jupiter dependencies.
  • Version updates
    • Bump spring-boot.version from 2.7.7 to 2.7.12
    • Bump commons-io from 2.11.0 to 2.13.0
    • Bump testcontainers.version from 1.17.6 to 1.18.3
    • Bump aws-java-sdk-s3 from 1.12.389 to 1.12.488
    • Bump aws-v2.version from 2.19.16 to 2.20.86
    • Bump alpine from 3.17.1 to 3.18.2 in /docker
    • Bump kotlin.version from 1.7.22 to 1.8.22
    • Bump docker-maven-plugin from 0.40.3 to 0.43.0
    • Bump testng from 7.7.1 to 7.8.0
    • Bump checkstyle from 10.6.0 to 10.12.0
    • Bump maven-enforcer-plugin from 3.1.0 to 3.3.0
    • Bump maven-dependency-plugin from 3.4.0 to 3.6.0
    • Bump maven-deploy-plugin from 3.0.0 to 3.1.1
    • Bump maven-checkstyle-plugin from 3.2.1 to 3.3.0
    • Bump maven-install-plugin from 3.1.0 to 3.1.1
    • Bump maven-javadoc-plugin from 3.4.1 to 3.5.0
    • Bump maven-source-plugin from 3.2.1 to 3.3.0
    • Bump maven-resources-plugin from 3.3.0 to 3.3.1
    • Bump maven-gpg-plugin from 3.0.1 to 3.1.0
    • Bump maven-surefire-plugin from 3.0.0-M8 to 3.1.2
    • Bump maven-failsafe-plugin from 3.0.0-M8 to 3.1.2
    • Bump maven-compiler-plugin from 3.10.1 to 3.11.0
    • Bump maven-release-plugin from 3.0.0-M7 to 3.0.1
    • Bump mockito-kotlin from 4.1.0 to 5.0.0
    • Bump license-maven-plugin-git.version from 4.1 to 4.2

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.12.2...2.13.0