1

Using S3 libraries with Minio mock server

Minio WebUI
Bookmark this on Hatena Bookmark
Share on LinkedIn
Pocket

In the continuation of my previous S3 article,

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

In this article, I will be using :

First step : running our mock S3 server

We will use Minio as our 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("N386RDH9QVMS0R6XFSJX");
	amazonArgs.setSecretKey("V17KJd7wr0tTxBzhut3ZRTgtRSNf15UjNy1oEcpK");
	amazonArgs.setEndpointURL("http://172.17.0.2:9000");
	amazonArgs.setRegion("us-east-2");
...
}
}

My code 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 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

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)