목차

, , , ,

mc (MinIO Client)

mc는 local filesystem과 MinIO·Amazon S3 호환 object storage를 ls, cp, mirror, find 같은 명령으로 다루는 MinIO Client이다.

mc 설정에는 access key와 secret key가 저장될 수 있다. 실제 credential을 wiki, shell history, source repository에 기록하지 말고 최소 권한 계정과 안전한 secret 전달 방식을 사용한다.

Summary

Installation

Debian / Ubuntu

MinIO가 제공하는 DEB package를 설치한다. 이 package의 실행 파일 이름은 mcli이다.

curl -O https://dl.min.io/client/mc/release/linux-amd64/mc.deb
sudo apt install ./mc.deb
mcli --version

ARM64에서는 URL의 linux-amd64linux-arm64로 바꾼다. mc 이름이 필요하면 아래 standalone binary 방식을 사용한다.

RHEL / Fedora

MinIO가 제공하는 RPM package를 설치한다. package 설치 환경에서는 mcli 명령을 사용한다.

sudo dnf install https://dl.min.io/client/mc/release/linux-amd64/mc.rpm
mcli --version

ARM64에서는 URL의 linux-amd64linux-arm64로 바꾼다.

Linux standalone binary

curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc.sha256sum
sha256sum -c mc.sha256sum
chmod +x mc
sudo install -m 0755 mc /usr/local/bin/mc
mc --version

macOS

brew install minio/stable/mc
mc --version

Windows

MinIO upstream은 공식 Windows binary를 제공한다. 공식 winget 설치 방법은 제공하지 않으므로 binary를 내려받고 신뢰할 수 있는 PATH directory에 둔다.

Invoke-WebRequest -Uri "https://dl.min.io/client/mc/release/windows-amd64/mc.exe" -OutFile ".\mc.exe"
.\mc.exe --version

Container

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

다른 endpoint를 등록하려면 interactive shell에서 mc alias set을 실행한다.

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

Usage

mc [GLOBAL_FLAGS] COMMAND [COMMAND_FLAGS] [ARGUMENTS]

Common global options

Commands

Alias and connection

mc alias set local https://minio.example.com "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY"
mc alias list local
mc admin info local
Alias와 credential 저장 방식, certificate directory, environment variable은 mc configuration을 참고한다.

Bucket

mc mb local/backups
mc ls local
mc version enable local/backups
mc rb –forcemc rb –dangerous는 bucket 또는 여러 bucket을 강제로 제거할 수 있다. 대상 alias와 bucket을 mc ls로 확인한 뒤 사용한다.

Object and file

mc cp report.pdf local/archive/
mc cp --recursive ./photos/ local/media/photos/
mc cp local/archive/report.pdf .
mc --json ls local/archive/
mc stat local/archive/report.pdf
mc rm –recursive –force는 prefix 아래 object를 대량 삭제한다. versioned bucket에서는 delete marker와 version 처리도 확인하고, 먼저 mc ls –recursive로 범위를 검증한다.

Synchronization

mc diff ./backup local/backups
mc mirror --overwrite ./backup local/backups
mc mirror –remove는 source에 없는 target object를 삭제한다. 실행 전 mc diff로 차이를 확인하고 backup/versioning 정책을 점검한다.

Presigned URL

mc share upload --expire 1h local/incoming/report.pdf
mc share download --expire 1h local/archive/report.pdf
Presigned URL은 만료 전까지 credential처럼 작동할 수 있다. terminal output, chat, ticket, log에 불필요하게 남기지 않는다.

Anonymous access

mc anonymous get local/public-assets
mc anonymous set download local/public-assets
public, download, upload policy는 인증되지 않은 접근을 허용한다. 공개가 의도된 bucket/prefix인지 먼저 확인한다.

Administration

admin command는 MinIO Server 관리 API를 사용하므로 S3-compatible service 전반에 적용되지 않는다.

mc admin info local
mc admin user add local app-reader "$MINIO_NEW_USER_SECRET"
mc admin policy attach local readonly --user app-reader
mc admin user info local app-reader

Help

현재 작업 환경에는 mc가 설치되어 있지 않아 최신 mc –help live output은 수록하지 않았다. 설치된 환경에서 아래 명령으로 확인한다.

mc --help
mc COMMAND --help

mc version --help (기존 기록)

Troubleshooting

mc가 Midnight Commander를 실행함

Linux package가 MinIO Client를 mcli로 설치할 수 있다. 다음 명령으로 어느 executable이 실행되는지 확인한다.

command -v mc
command -v mcli
mcli --version

TLS certificate error

정상 CA chain을 구성하거나 조직 CA certificate를 ~/.mc/certs/CAs/에 추가한다. –insecure는 certificate 검증을 비활성화하므로 임시 진단 외에는 사용하지 않는다.

Access Denied

Path-style endpoint가 필요함

일부 S3-compatible endpoint는 path-style lookup이 필요하다.

mc alias set local https://s3.example.com "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --path on

Compatibility

Deprecated / Legacy

기존 페이지에 기록된 다음 형식은 현재 공식 top-level command 목록과 일치하지 않거나 오타가 있어 보존만 한다.

See Also

History