Using S3 libraries with Minio mock server

Home / Using S3 libraries with Minio mock server

Minio WebUI

Share on LinkedIn
Pocket

In the continuation of my previous S3 article,

I present you, how to write a S3 Sample program that is using a S3 to develop the functionalities.

In this article, I will be using :

First step : running our mock S3 server

We will use Minio as our fake S3 server.

You need to have installed on your machine. Once installed. type the following commands in your terminal :

docker pull /minio
docker run -p 9000:9000 minio/minio server /

 

Your terminal should show you something similar to this screenshot :

Minio launching using Docker
Minio launching using Docker

The following informations are important :

  • Your access key
  • Your secret token
  • And the endpoint

With your browser, you can open an UI on Minio and browse your buckets and objects :

I modified my Java example to pass all the informations (link) :


public class AmazonS3Example {

    private static final Logger LOGGER = LoggerFactory.getLogger(AmazonS3Example.class);

    public static void main(final String[] args) {

	final AmazonArgs amazonArgs = new AmazonArgs();
	JCommander.newBuilder().addObject(amazonArgs).build().parse(args);

	amazonArgs.setAccessKey("N36RDH9QVMS0R6XFSJX");
	amazonArgs.setSecretKey("V17KJd7wr0tTxBzhut3ZRTgtRSNf15UjNy1oEcpK");
	amazonArgs.setEndpointURL("http://172.17.0.2:9000");
	amazonArgs.setRegion("us-east-2");
...
}
}

My is doing these basic tasks :

  • Creating a bucket
  • Get the list of buckets on the server
  • Checking for the existence of this newly created bucket
  • Creating a folder inside this bucket
  • Uploading a file in the folder of this bucket (creates a new object)
  • Reading the object content
  • Deleting the folder
  • Deleting the bucket

Feedback : When writing my example, I had some issues with the Amazon s3 client (especially the v2 methods to detect the presence of an object, a cluster) and with the RegionName of the Amazon client that is guessing the region based on the endpoint. You should rather store this information as a configuration , accessible by all your objects.

Using Minio and a S3 code seems to be easy, for most of the S3 basic operations.

Have you tried it ? What is your opinion about Minio ?

 

Share on LinkedIn
Pocket

, , , , , , , , , , , , , , , , , ,

About Author

about author

Sylvain Leroy

Senior Software Quality Manager and Solution Architect in Switzerland, I have previously created my own company, Tocea, in Software Quality Assurance. Now I am offering my knowledges and services in a small IT Consulting company : Byoskill and a website www.byoskill.com

Currently living in Lausanne (CH)

Optimization WordPress Plugins & Solutions by W3 EDGE