DEV.co
Open-Source Testing · adobe

S3Mock

S3Mock is a lightweight, mock AWS S3 server designed for local integration testing during development. It eliminates the need for real AWS infrastructure by implementing a subset of the S3 API and can be deployed as a Docker container, JUnit extension, or Testcontainers instance.

Source: GitHub — github.com/adobe/S3Mock
1.1k
GitHub stars
196
Forks
Kotlin
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryadobe/S3Mock
Owneradobe
Primary languageKotlin
LicenseApache-2.0 — OSI-approved
Stars1.1k
Forks196
Open issues4
Latest release5.1.0 (2026-06-21)
Last updated2026-07-07
Sourcehttps://github.com/adobe/S3Mock

What S3Mock is

Written in Kotlin and running on JVM (Java 17+), S3Mock provides S3 API endpoints for bucket and object operations, multipart uploads, and versioning support. It integrates with Docker, Testcontainers, JUnit 5, and TestNG, and supports both amd64 and arm64 architectures.

Quickstart

Get the S3Mock source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/adobe/S3Mock.gitcd S3Mock# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Local Integration Testing

Replace AWS S3 with a mock server in CI/CD pipelines and local development environments to eliminate AWS costs and network dependencies during testing.

JUnit/TestNG Test Automation

Use as a JUnit 5 extension or TestNG listener to spin up S3 mocks within test lifecycles without manual container management.

Docker-Based Test Infrastructure

Run S3Mock as a standalone Docker container in docker-compose or Kubernetes test environments for consistent, reproducible test scenarios.

Implementation considerations

  • Requires Java 17+ and Kotlin 2.3; Spring Boot 4.0.x dependency.
  • Maven artifact available via Maven Central; Docker image available on Docker Hub (adobe/s3mock).
  • Supports AWS SDK v2 clients; AWS SDK v1 support removed in 5.x. Verify client compatibility before upgrade.
  • Version 5.x introduces filesystem structure changes; existing test data from 4.x may be incompatible.
  • Configure via environment variables or Spring properties; health check endpoint available for readiness/liveness probes.

When to avoid it — and what to weigh

  • Production or Production-Like Workloads — S3Mock is a testing tool only; it is not intended for, and should not be used in, production environments or to replace real S3.
  • Comprehensive S3 API Coverage Required — Only a subset of S3 operations is supported. Advanced features like analytics, encryption configs, intelligent tiering, and lifecycle policies are not implemented.
  • High-Fidelity Performance or Concurrency Testing — S3Mock is optimized for functional testing, not performance benchmarking or stress testing at production scale.
  • Long-Term Data Persistence — S3Mock is ephemeral by design; data loss between container restarts is expected. Not suitable for persistent test data across environments.

License & commercial use

Licensed under Apache License 2.0 (Apache-2.0), a permissive OSI-approved open-source license allowing commercial use, modification, and distribution with attribution and liability limitation.

Apache-2.0 permits commercial use in testing and development workflows. Suitable for proprietary software testing pipelines. No licensing fees or restrictions on internal use; no support contract implied. Review Apache-2.0 terms for your specific use case.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

S3Mock is a testing tool only and should never run in production or with real credentials. It implements a subset of S3 APIs; no assertion of full S3 security feature parity (e.g., encryption, IAM policies, ACLs) is made. OpenSSF Best Practices and Scorecard badges suggest active security review. For development/test environments only; isolate from production networks.

Alternatives to consider

LocalStack

Broader AWS service mocking (Lambda, DynamoDB, SQS, etc.); heavier footprint; more feature-complete but higher resource consumption.

Moto (Python)

Similar mock S3 tool for Python-based projects; cross-language alternative if ecosystem is not JVM-bound.

Real AWS S3 with TestContainers/Docker

Use real AWS S3 in isolated test accounts or LocalStack for broader coverage; trades cost/latency for fidelity.

Software development agency

Build on S3Mock with DEV.co software developers

Pull the Adobe S3Mock Docker image or add the Maven dependency to your test suite. Get started in minutes with zero AWS infrastructure.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

S3Mock FAQ

Can I use S3Mock in production?
No. S3Mock is a testing tool only. It is not designed, tested, or supported for production workloads. Use real AWS S3 in production.
Does S3Mock support all S3 operations?
No. Only a subset of S3 API operations is supported (e.g., bucket/object CRUD, multipart uploads, versioning). Advanced features like encryption, analytics, and lifecycle policies are not implemented. Refer to the supported operations table in the README.
What happens to my test data when S3Mock stops?
By default, all data is lost. S3Mock is ephemeral; persistent storage requires explicit configuration (e.g., Docker volume mount). For stateless testing, this is the intended behavior.
Is S3Mock compatible with AWS SDK v1 and v2?
Version 5.x supports AWS SDK v2 only; AWS SDK v1 support was removed. Versions 4.x and earlier supported both. Upgrade cautiously and test client compatibility.

Work with a software development agency

DEV.co helps companies turn open-source tools like S3Mock into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source testing stack.

Ready to Simplify Your S3 Testing?

Pull the Adobe S3Mock Docker image or add the Maven dependency to your test suite. Get started in minutes with zero AWS infrastructure.