Aditya Manthramurthy 85a5c358d8 Add bucket metadata state client/handler (Fixes #3022) (#3152)
- Adds an interface to update in-memory bucket metadata state called
  BucketMetaState - this interface has functions to:
     - update bucket notification configuration,
     - bucket listener configuration,
     - bucket policy configuration, and
     - send bucket event

- This interface is implemented by `localBMS` a type for manipulating
  local node in-memory bucket metadata, and by `remoteBMS` a type for
  manipulating remote node in-memory bucket metadata.

- The remote node interface, makes an RPC call, but the local node
  interface does not - it updates in-memory bucket state directly.

- Rename mkPeersFromEndpoints to makeS3Peers and refactored it.

- Use arrayslice instead of map in s3Peers struct

- `s3Peers.SendUpdate` now receives an arrayslice of peer indexes to
  send the request to, with a special nil value slice indicating that
  all peers should be sent the update.

- `s3Peers.SendUpdate` now returns an arrayslice of errors, representing
  errors from peers when sending an update. The array positions
  correspond to peer array s3Peers.peers

Improve globalS3Peers:

- Make isDistXL a global `globalIsDistXL` and remove from s3Peers

- Make globalS3Peers an array of (address, bucket-meta-state) pairs.

- Fix code and tests.
2016-11-07 12:09:24 -08:00
2015-08-20 16:10:01 -07:00
2016-05-20 13:53:15 -07:00
2014-10-30 21:51:52 -07:00
2016-03-09 13:55:58 +01:00
2016-09-22 20:58:10 -07:00

Minio Quickstart Guide Gitter Go Report Card Docker Pulls codecov

Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB.

Minio server is light enough to be bundled with the application stack, similar to NodeJS, Redis and MySQL.

Docker Container

Stable

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

Edge

$ docker pull minio/minio:edge
$ docker run -p 9000:9000 minio/minio:edge server /export

Please visit Minio Docker quickstart guide for more here

OS X

Homebrew

Install minio packages using Homebrew

$ brew install minio
$ minio server ~/Photos

Binary Download

Platform Architecture URL
Apple OS X 64-bit Intel https://dl.minio.io/server/minio/release/darwin-amd64/minio
$ chmod 755 minio
$ ./minio server ~/Photos

GNU/Linux

Binary Download

Platform Architecture URL
GNU/Linux 64-bit Intel https://dl.minio.io/server/minio/release/linux-amd64/minio
32-bit Intel https://dl.minio.io/server/minio/release/linux-386/minio
32-bit ARM https://dl.minio.io/server/minio/release/linux-arm/minio
$ chmod +x minio
$ ./minio server ~/Photos

Microsoft Windows

Binary Download

Platform Architecture URL
Microsoft Windows 64-bit https://dl.minio.io/server/minio/release/windows-amd64/minio.exe
32-bit https://dl.minio.io/server/minio/release/windows-386/minio.exe
C:\Users\Username\Downloads> minio.exe server D:\Photos

FreeBSD

Binary Download

Platform Architecture URL
FreeBSD 64-bit https://dl.minio.io/server/minio/release/freebsd-amd64/minio
$ chmod 755 minio
$ ./minio server ~/Photos

Please visit official zfs FreeBSD guide for more details here

Install from Source

Source installation is only intended for developers and advanced users. If you do not have a working Golang environment, please follow How to install Golang.


$ go get -u github.com/minio/minio

Test using Minio Browser

Minio Server comes with an embedded web based object browser. Point your web browser to http://127.0.0.1:9000 ensure your server has started successfully.

Screenshot

Test using Minio Client mc

mc provides a modern alternative to UNIX commands like ls, cat, cp, mirror, diff etc. It supports filesystems and Amazon S3 compatible cloud storage services. Follow the Minio Client Quickstart Guide for further instructions.

Explore Further

Contribute to Minio Project

Please follow Minio Contributor's Guide

Languages
Go 99%
Shell 0.8%
Makefile 0.1%