All Projects → minio → Mc

minio / Mc

Licence: apache-2.0
MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Mc

Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (+100.41%)
Mutual labels:  s3, aws-s3, google-cloud-storage, filesystem
Flydrive
☁️ Flexible and Fluent framework-agnostic driver based system to manage storage in Node.js
Stars: ✭ 275 (-85.98%)
Mutual labels:  s3, google-cloud-storage, storage, filesystem
storage
Go package for abstracting local, in-memory, and remote (Google Cloud Storage/S3) filesystems
Stars: ✭ 49 (-97.5%)
Mutual labels:  filesystem, s3, google-cloud-storage
benji
📁 This library is a Scala reactive DSL for object storage (e.g. S3/Amazon, S3/CEPH, Google Cloud Storage).
Stars: ✭ 18 (-99.08%)
Mutual labels:  storage, s3, google-cloud-storage
Thanos
Highly available Prometheus setup with long term storage capabilities. A CNCF Incubating project.
Stars: ✭ 9,820 (+400.51%)
Mutual labels:  s3, google-cloud-storage, storage
Tus Ruby Server
Ruby server for tus resumable upload protocol
Stars: ✭ 172 (-91.23%)
Mutual labels:  s3, storage, filesystem
BlobHelper
BlobHelper is a common, consistent storage interface for Microsoft Azure, Amazon S3, Komodo, Kvpbase, and local filesystem written in C#.
Stars: ✭ 23 (-98.83%)
Mutual labels:  storage, aws-s3, s3
Shrine
File Attachment toolkit for Ruby applications
Stars: ✭ 2,903 (+47.96%)
Mutual labels:  s3, storage, filesystem
nestjs-storage
Nestjs file system / file storage module wrapping flydrive
Stars: ✭ 92 (-95.31%)
Mutual labels:  filesystem, s3, google-cloud-storage
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (-81.5%)
Mutual labels:  s3, storage, filesystem
S5cmd
Parallel S3 and local filesystem execution tool.
Stars: ✭ 565 (-71.2%)
Mutual labels:  s3, storage, filesystem
Are We Consistent Yet
Compare eventual consistency of object stores
Stars: ✭ 157 (-92%)
Mutual labels:  s3, aws-s3, google-cloud-storage
S3proxy
Access other storage backends via the S3 API
Stars: ✭ 952 (-51.48%)
Mutual labels:  s3, aws-s3, google-cloud-storage
Juicefs
JuiceFS is a distributed POSIX file system built on top of Redis and S3.
Stars: ✭ 4,262 (+117.23%)
Mutual labels:  s3, storage, filesystem
S3fs Fuse
FUSE-based file system backed by Amazon S3
Stars: ✭ 5,733 (+192.2%)
Mutual labels:  s3, aws-s3, filesystem
Radosgw Admin4j
A Ceph Object Storage Admin SDK / Client Library for Java ✨🍰✨
Stars: ✭ 50 (-97.45%)
Mutual labels:  s3, aws-s3, storage
Zbox
Zero-details, privacy-focused in-app file system.
Stars: ✭ 1,185 (-39.6%)
Mutual labels:  storage, filesystem
Cloudserver
Zenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
Stars: ✭ 1,167 (-40.52%)
Mutual labels:  aws-s3, storage
Akubra
Simple solution to keep a independent S3 storages in sync
Stars: ✭ 79 (-95.97%)
Mutual labels:  s3, storage
Nestjs Multer Extended
💪 Extended MulterModule for NestJS with flexible S3 upload and helpful features
Stars: ✭ 99 (-94.95%)
Mutual labels:  s3, aws-s3

MinIO Client Quickstart Guide

Slack Go Report Card Docker Pulls license

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).

alias       set, remove and list aliases in configuration file
ls          list buckets and objects
mb          make a bucket
rb          remove a bucket
cp          copy objects
mirror      synchronize object(s) to a remote site
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
find        search for objects
sql         run sql queries on objects
stat        show object metadata
mv          move objects
tree        list buckets and objects in a tree format
du          summarize disk usage recursively
retention   set retention for object(s)
legalhold   set legal hold for object(s)
diff        list differences in object name, size, and date between two buckets
rm          remove objects
encrypt    manage bucket encryption config
event       manage object notifications
watch       listen for object notification events
undo        undo PUT/DELETE operations
policy      manage anonymous access to buckets and objects
tag         manage tags for bucket(s) and object(s)
ilm         manage bucket lifecycle
version     manage bucket versioning
replicate   configure server side bucket replication
admin       manage MinIO servers
update      update mc to latest release

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.

GitLab CI

When using the Docker container in GitLab CI, you must set the entrypoint to an empty string.

deploy:
  image:
    name: minio/mc
    entrypoint: ['']
  stage: deploy
  before_script:
    - mc alias set minio $MINIO_HOST $MINIO_ACCESS_KEY $MINIO_SECRET_KEY
  script:
    - mc cp <source> <destination>

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 only intended for developers and advanced users. If you do not have a working Golang environment, please follow How to install Golang. Minimum version required is go1.17

go install github.com/minio/mc@latest

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 alias set <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> --api <API-SIGNATURE> --path <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".

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

Example - MinIO Cloud Storage

MinIO server startup banner displays URL, access and secret keys.

mc alias set minio http://192.168.1.51 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Example - Amazon S3 Cloud Storage

Get your AccessKeyID and SecretAccessKey by following AWS Credentials Guide.

mc alias set 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 alias set gcs  https://storage.googleapis.com BKIKJAA5BMMU2RHO6IBB V8f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

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

Use of mc is governed by the GNU AGPLv3 license that can be found in the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].