I have to develop a new feature using Amazon S3 services. The first discussed thing with the customer was how to get access to an S3 AWS Account to write my features. Since it was rather complicated, I had to look for some alternative solutions.
These are my finds.
Using Amazon AWS 3 with Java
First, to manipulate S3 resources, I am writing Java microservices. I have been looking for Java S3 Libraries and some interesting links :
- Github official link to the Amazon AWS SDK
- Description of the API
- How to upload an Object using the AWS SDK For Java
- Some more examples
- Amazon S3 with Java
- Another example using Amazon S3 and Java
Mocking Amazon S3 Server with a Local server
if you desire to develop on your laptop and solely rely on the local resources, you can use a mock server to emulate an S3 API.
I found many different implementations :
- Minio: Minio is an open-source object storage server compatible with Amazon S3 APIs
- s3mock library: S3 Mock library for Java/Scala
- python s3mock: Embedded S3 server for easy mocking
- Docker, Python
- S3Mock from Adobe [DOCKER Compatible]: A simple mock implementation of the AWS S3 API startable as Docker image or JUnit rule
- Docker, Java
- Fake-s3: A lightweight server clone of Amazon S3 that simulates most of the commands supported by S3 with minimal dependencies
- Docker, Ruby
- S3 Zenko IO open-source Node.js implementation of a server handling the Amazon S3 protocol https://www.zenko.io
- Docker, Node.JS
- Basic S3 Mock Server: S3rver is a lightweight server that responds to some of the same calls Amazon S3 responds to.
- S3 Proxy: S3Proxy implements the S3 API and proxies requests, enabling several use cases:
- Docker, Java
- Mock-s3: A Python port of Fake-s3
Don’t miss the next article, I will compare the solutions with a Java example!