Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage.
Branch: master
Clone or download
sinhaashish and kannappanr Add --ignore-existing/-p flag in mc event add command (#2773)
If the event is already present the server throws an error. With the --ignore-existing/ -p flag these error messages are discarded
Latest commit 9a25e66 Jul 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add admin users (#2554) Oct 16, 2018
buildscripts Add staticcheck based builds (#2788) Jun 3, 2019
cmd Add --ignore-existing/-p flag in mc event add command (#2773) Jul 16, 2019
docs Add --ignore-existing/-p flag in mc event add command (#2773) Jul 16, 2019
pkg Add staticcheck based builds (#2788) Jun 3, 2019
.gitignore Vendorize all the latest dependencies with go mod (#2674) Feb 9, 2019
.mailmap Adds missing codebase MinIO and min.io changes (#2745) Apr 17, 2019
.travis.yml Migrate to go1.12, deprecate vendor directory (#2727) Mar 27, 2019
CONFLICT.md mc command cleanup (#2783) Jun 27, 2019
CONTRIBUTING.md mc command cleanup (#2783) Jun 27, 2019
Dockerfile Adds missing codebase MinIO and min.io changes (#2745) Apr 17, 2019
Dockerfile.release Adds missing codebase MinIO and min.io changes (#2745) Apr 17, 2019
LICENSE Add Apache License v2.0 Jan 17, 2015
Makefile Add staticcheck based builds (#2788) Jun 3, 2019
NOTICE Adds missing codebase MinIO and min.io changes (#2745) Apr 17, 2019
README.md Fix auto-completion code (#2819) Jul 11, 2019
README_zh_CN.md Remove port 9000 for play.min.io (#2817) Jul 10, 2019
contributors.sh Add contributors file May 23, 2015
functional-tests.sh Remove port 9000 for play.min.io (#2817) Jul 10, 2019
go.mod Migrate to new minio/cli, fix all extra spaces across commands (#2825) Jul 15, 2019
go.sum Migrate to new minio/cli, fix all extra spaces across commands (#2825) Jul 15, 2019
main.go Add staticcheck based builds (#2788) Jun 3, 2019
staticcheck.conf Add staticcheck based builds (#2788) Jun 3, 2019

README.md

MinIO Client Quickstart Guide

Slack Go Report Card Docker Pulls

MinIO Client (mc) provides a modern alternative to UNIX commands like ls, cat, cp, mirror, diff, find etc. It supports filesystems and Amazon S3 compatible cloud storage service (AWS Signature v2 and v4).

ls       list buckets and objects
mb       make a bucket
rb       remove a bucket
cat      display object contents
head     display first 'n' lines of an object
pipe     stream STDIN to an object
share    generate URL for temporary access to an object
cp       copy objects
mirror   synchronize objects to a remote site
find     search for objects
sql      run sql queries on objects
stat     stat contents of objects
diff     list differences in object name, size, and date between buckets
rm       remove objects
event    manage object notifications
watch    watch for object events
policy   manage anonymous access to objects
admin    manage MinIO servers
session  manage saved sessions for cp command
config   manage mc configuration file
update   check for a new software update
version  print version info

Docker Container

Stable

docker pull minio/mc
docker run minio/mc ls play

Edge

docker pull minio/mc:edge
docker run minio/mc:edge ls play

Note: Above examples run mc against MinIO play environment by default. To run mc against other S3 compatible servers, start the container this way:

docker run -it --entrypoint=/bin/sh minio/mc

then use the mc config command.

macOS

Homebrew

Install mc packages using Homebrew

brew install minio/stable/mc
mc --help

GNU/Linux

Binary Download

Platform Architecture URL
GNU/Linux 64-bit Intel https://dl.min.io/client/mc/release/linux-amd64/mc
64-bit PPC https://dl.min.io/client/mc/release/linux-ppc64le/mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc --help

Microsoft Windows

Binary Download

Platform Architecture URL
Microsoft Windows 64-bit Intel https://dl.min.io/client/mc/release/windows-amd64/mc.exe
mc.exe --help

Install from Source

Source installation is intended only for developers and advanced users. mc update command does not support update notifications for source based installations. Please download official releases from https://min.io/download/#minio-client.

If you do not have a working Golang environment, please follow How to install Golang.

go get -d github.com/minio/mc
cd ${GOPATH}/src/github.com/minio/mc
make

Add a Cloud Storage Service

If you are planning to use mc only on POSIX compatible filesystems, you may skip this step and proceed to everyday use.

To add one or more Amazon S3 compatible hosts, please follow the instructions below. mc stores all its configuration information in ~/.mc/config.json file.

mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> --api <API-SIGNATURE> --lookup <BUCKET-LOOKUP-TYPE>

Alias is simply a short name to your cloud storage service. S3 end-point, access and secret keys are supplied by your cloud storage provider. API signature is an optional argument. By default, it is set to "S3v4".

Lookup is an optional argument. It is used to indicate whether dns or path style url requests are supported by the server. It accepts "dns", "path" or "auto" as valid values. By default, it is set to "auto" and SDK automatically determines the type of url lookup to use.

Example - MinIO Cloud Storage

MinIO server displays URL, access and secret keys.

mc config host add minio http://192.168.1.51 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Example - Amazon S3 Cloud Storage

Get your AccessKeyID and SecretAccessKey by following AWS Credentials Guide.

mc config host add s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Note: As an IAM user on Amazon S3 you need to make sure the user has full access to the buckets or set the following restricted policy for your IAM user

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowBucketStat",
            "Effect": "Allow",
            "Action": [
                "s3:HeadBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowThisBucketOnly",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<your-restricted-bucket>/*",
                "arn:aws:s3:::<your-restricted-bucket>"
            ]
        }
    ]
}

Example - Google Cloud Storage

Get your AccessKeyID and SecretAccessKey by following Google Credentials Guide

mc config host add gcs  https://storage.googleapis.com BKIKJAA5BMMU2RHO6IBB V8f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

NOTE: Google Cloud Storage only supports Legacy Signature Version 2, so you have to pick - S3v2

Test Your Setup

mc is pre-configured with https://play.min.io, aliased as "play". It is a hosted MinIO server for testing and development purpose. To test Amazon S3, simply replace "play" with "s3" or the alias you used at the time of setup.

Example:

List all buckets from https://play.min.io

mc ls play
[2016-03-22 19:47:48 PDT]     0B my-bucketname/
[2016-03-22 22:01:07 PDT]     0B mytestbucket/
[2016-03-22 20:04:39 PDT]     0B mybucketname/
[2016-01-28 17:23:11 PST]     0B newbucket/
[2016-03-20 09:08:36 PDT]     0B s3git-test/

Make a bucket mb command creates a new bucket.

Example:

mc mb play/mybucket
Bucket created successfully `play/mybucket`.

Copy Objects cp command copies data from one or more sources to a target.

Example:

mc cp myobject.txt play/mybucket
myobject.txt:    14 B / 14 B  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.00 % 41 B/s 0

Everyday Use

Shell aliases

You may add shell aliases to override your common Unix tools.

alias ls='mc ls'
alias cp='mc cp'
alias cat='mc cat'
alias mkdir='mc mb'
alias pipe='mc pipe'
alias find='mc find'

Shell autocompletion

In case you are using bash, zsh or fish. Shell completion is embedded by default in mc, to install auto-completion use mc --autocompletion. Restart the shell, mc will auto-complete commands as shown below.

mc <TAB>
admin    config   diff     find     ls       mirror   policy   session  sql      update   watch
cat      cp       event    head     mb       pipe     rm       share    stat     version

Explore Further

Contribute to MinIO Project

Please follow MinIO Contributor's Guide

License

FOSSA Status

You can’t perform that action at this time.