What is Minio

Minio is an object storage server built for cloud application developers 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 Licence 2.0

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

Microstorage Architecture

Microstorage architecture achieves exascale by provisioning a large number of smaller instances. Any failure is contained within a single instance.

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

// Import Minio library.
var Minio = require('minio')

// Instantiate the minio client with the endpoint
// and access keys as shown below.
var minioClient = new Minio({
    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.')
    });
});
// Import Minio library.
package main

import (
    "log"
    "github.com/minio/minio-go"
)

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 {
        log.Fatalln(err)
    }

    // Creates bucket with name mybucket.
    err := minioClient.MakeBucket("mybucket", "us-east-1")
    if err != nil {
        fmt.Println(err)
        return
    }
    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.Println(err)
        return
    }
}
# Import Minio library.
from minio import Minio

# Initialize minioClient with an endpoint and access/secret keys.
minioClient = Minio('play.minio.io:9000',
                access_key='Q3AM3UQ867SPQQA43P2F',
                secret_key='zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
                secure=True)

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

# Upload an object 'myobject.ogg' with contents from '/home/john/myfilepath.ogg'.
try:
    minioClient.fput_object('mybucket', 'myobject.ogg', '/home/john/myfilepath.ogg')
except ResponseError as err:
    print(err)
// 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,
                        IOException,
                InvalidKeyException,
             XmlPullParserException,
                      MinioException {
        // Initialize minioClient with an endpoint and access/secret keys.
        MinioClient minioClient = new MinioClient("http://play.minio.io:9000",
                                                  "Q3AM3UQ867SPQQA43P2F",
                                                  "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");

        // Creates a bucket with name mybucket.
        minioClient.makeBucket("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

Community

User Downloads

Github Stars