# minio client(https://github.com/minio/mc)는 aws s3 종류의
# object storage 에 cat,ls,cp,rm 등의 파일 관련 명령을 실행할 수 있고
# go 로 만들어져 관련 go 애플리케이션 개발에도 사용할 수 있다.
# 설치
# 참고로 midnight commander https://github.com/MidnightCommander/mc 가 있다면 이름이 같아서, brew 설치시 /usr/local/bin/mc 가 충돌난다.
# brew unlink midnight-command 로 링크를 해제해야 한다
# 그리고 midnight commander 는 다음과 같이 alias 로 사용하자.
# alias m-c='/usr/local/Cellar/midnight-commander/4.8.28/bin/mc'
brew install minio/stable/mc
# ysoftmanS3, ysoftmanGCS 이름으로 credential 설정
# 설정은 ~/.mc/config.json 에 저장된다.
# --api S3v2 또는 S3V4(기본) 를 선택할 수 있다.
mc alias set ysoftmanS3 https://s3.amazonaws.com {accesskey} {secretkey}
mc alias set ysoftmanGCS https://storage.googleapis.com {accesskey} {secretkey}
# alias 확인
mc alias ls
# 자동완성 기능이 현재 쉘 설정(.bashrc, .zshrc)에 추가된다.
# 쉘 재시작 후 mc <tab> 으로 사용
mc --autocompletion
# a 버킷(디렉토리) 생성
mc mb ysoftmanS3/a
# a 버킷(디렉토리) 삭제
mc rb ysoftmanS3/a
# ./test.txt -> ysoftmanS3/a/test.txt 로 복사
mc cp ./test.txt ysoftmanS3/a
# ysoftmanS3 의 a 디렉토리 내용
mc ls ysoftmanS3/a
# ysoftmanS3 의 a 디렉토리 크기
mc du ysoftmanS3/a
# 상태 확인
mc stat ysoftmanS3/a/test.txt
# 파일 내용 확인
mc cat ysoftmanS3/a/test.txt
# 파일 삭제
mc rm ysoftmanS3/a/test.txt