What is Minio

Minio is a distributed object storage server built for cloud applications and devops.

Amazon S3 Compatible

Minio implements Amazon S3 v4 APIs. Minio also includes client SDKs and a console utility.

Minimalist Design

Minio is deeply influenced by minimalism. We believe that only simple things scale.

Apache License 2.0

Minio is free software, released under Apache license v2.0. Minio has an active developer and user community.

Lambda Functions

Minio triggers Lambda functions through event notification service. In addition Minio also supports simple queueing service for AMQP, Elasticsearch, Redis, NATS and Postgres targets.

Erasure Code & Bitrot Protection

Minio protects data against hardware failures and silent data corruption using erasure code and checksums. You may lose half the number of drives and still recover from it.

Written in Go

Go is an emerging language of choice for modern cloud infrastructure projects. Go language enables Minio to be highly concurrent and lightweight.

How to use Minio

// Install Minio library.
// $ go get -u github.com/minio/minio-go
package main

import (
    "github.com/minio/minio-go" // Import Minio library.

func main() {
    // Use a secure connection.
    ssl := true

    // Initialize minio client object.
    minioClient, err := minio.New("play.minio.io:9000", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", ssl)
    if err != nil {

    // Creates bucket with name mybucket.
    err = minioClient.MakeBucket("mybucket", "us-east-1")
    if err != nil {
    fmt.Println("Successfully created mybucket.")

    // Upload an object 'myobject.txt' with contents from '/home/joe/myfilename.txt'
    n, err := minioClient.FPutObject("mybucket", "myobject.txt", "/home/joe/myfilename.txt", "application/text")
    if err != nil {
    fmt.Printf("Uploaded myobject.txt of size %d\n", n)
// Install Minio library.
// $ npm install -g minio
// Import Minio library.
var Minio = require('minio')

// Instantiate the minio client with the endpoint
// and access keys as shown below.
var minioClient = new Minio.Client({
    endPoint: 'play.minio.io',
    port: 9000,
    secure: true,
    accessKey: 'Q3AM3UQ867SPQQA43P2F',
    secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'

// File that needs to be uploaded.
var file = '/tmp/photos-europe.tar'

// Make a bucket called europetrip.
minioClient.makeBucket('europetrip', 'us-east-1', function(err) {
    if (err) return console.log(err)

    console.log('Bucket created successfully in "us-east-1".')

    // Using fPutObject API upload your file to the bucket europetrip.
    minioClient.fPutObject('europetrip', 'photos-europe.tar', file, 'application/octet-stream', function(err, etag) {
        if (err) return console.log(err)
            console.log('File uploaded successfully.')
# Install Minio library.
# $ pip install minio
# Import Minio library.
from minio import Minio

# Initialize minioClient with an endpoint and access/secret keys.
minioClient = Minio('play.minio.io:9000',

# Creates a bucket with name mybucket.
    minioClient.make_bucket("mybucket", location="us-east-1")
except ResponseError as err:

# Upload an object 'myobject.ogg' with contents from '/home/john/myfilepath.ogg'.
    minioClient.fput_object('mybucket', 'myobject.ogg', '/home/john/myfilepath.ogg')
except ResponseError as err:
// Install Minio library.
// Visit - https://docs.minio.io/docs/java-client-quickstart-guide
// Import Minio library.
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import org.xmlpull.v1.XmlPullParserException;

public class Upload {
    public static void main(String[] args)
    throws NoSuchAlgorithmException,
                      MinioException {
        // Initialize minioClient with an endpoint and access/secret keys.
        MinioClient minioClient = new MinioClient("http://play.minio.io:9000",

        // Creates a bucket with name mybucket.
        System.out.println("mybucket is created successfully");

        // Upload an object 'island.jpg' with contents from '/home/joe/island.jpg'
        minioClient.putObject("mybucket",  "island.jpg", "/home/joe/island.jpg")
        System.out.println("island.jpg is uploaded successfully");
Minio Browser


Join us on Slack