dockerfiles/minio
kev 779e6f5e31 update 2019-11-21 10:54:21 +08:00
..
README.md update minio 2017-10-03 13:55:04 +08:00
docker-compose.yml add minio 2017-10-03 12:33:31 +08:00
gateway-docker-compose.yml update 2019-11-21 10:54:21 +08:00

minio

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-compose.yml

minio:
  image: minio/minio
  command: server /data
  ports:
    - "9000:9000"
  volumes:
    - ./data:/data
    - ./conf:/root/.minio
  restart: always

Server

$ docker-compose up -d
$ cat ./conf/config.json
# "accessKey": "XXXXXXXXXXXXXXXXXXXX",
# "secretKey": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
$ curl -u XXXXXXXXXXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY http://127.0.0.1:9000

Client

Download minio client:

Read minio tutorial.

$ mc config host add minio http://127.0.0.1:9000 XXXXXXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$ mc mb minio/test
$ mc cp README.md minio/test
$ mc cat minio/test/README.md
$ mc ls -r minio
$ mc rm minio/test/README.md
$ mc rm minio/test

Client (Android)

$ termux-setup-storage
$ realpath ~/storage/dcim
/storage/emulated/0/DCIM
$ cd ~/storage/dcim/Camera
$ termux-camera-photo -c 0 back.jpg
$ termux-camera-photo -c 1 front.jpg

$ go get -u github.com/minio/mc
$ mc config host add minio http://127.0.0.1:9000 XXXXXXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$ mc mb minio/android
$ mc mirror --force --remove --watch /storage/emulated/0/DCIM/Camera/ minio/android/camera
$ pwd
/data/data/com.termux/files/home

$ cat >> .bashrc << _EOF_
export TMPDIR=/data/data/com.termux/files/usr/tmp
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export RESTIC_REPOSITORY=s3:http://192.168.1.104:9000/android
export RESTIC_PASSWORD=ZZZZZZZZ
_EOF_

$ restic init
$ restic backup .bashrc
$ restic snapshots
ID        Date                 Host        Tags        Directory
----------------------------------------------------------------------
8d6a4777  2017-10-03 04:54:39  localhost               /data/data/com.termux/files/home/.bashrc

$ restic restore 8d6a4777 -t xxx
$ ls -al xxx
total 12
drwx------    2 u0_a120  u0_a120       4096 Oct  3 12:59 .
drwx------   14 u0_a120  u0_a120       4096 Oct  3 12:59 ..
-rw-------    1 u0_a120  u0_a120        406 Oct  3 12:53 .bashrc
$ rm -r xxx