minio单机部署

972 阅读3分钟

minio

极速部署

  1. 安装docker:(参考:www.runoob.com/docker/ubun…
curl -sSL https://get.daocloud.io/docker | sh
  1. 在docker中运行minio:
docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -v /mnt/data:/data \
  quay.io/minio/minio server /data --console-address ":9001"
  1. 到这里其实已经安装可以运行了,但是如果想做”本地文件上传/下载+创建自定义桶“的验证的话,可自行改动github官网的file-uploader.go,可参考下面的“个人实践”。
  2. 最重要的一点是保证go-uploader文件中的useSSL要设置成false、go-download中的Secure设置成false,否则会提示 http: server gave HTTP response to HTTPS client,则需要参考下面的“个人实践”去配置密钥和证书。

手工部署

下载与验证

minio:(https://github.com/minio/minio)
下载:wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mkdir ~/data
./minio server ~/data
验证是否启动成功与体验功能:You can use the Browser to create buckets, upload objects, and browse the contents of the MinIO server.
访问http://127.0.0.1:9000
初始账号密码是:minioadmin:minioadmin

go操作minio

选用go作为操作minio的语言
安装参考该教程
https://docs.studygolang.com/doc/install
创建任意项目名
例如:mkdir project
之后cd project
go env -w GO111MODULE=on
go mod init xxx //xxx代表项目所在文件夹名 在这里就是project
go get github.com/minio/minio-go/v7
之后参考github上面的代码体验即可

个人实践

个人需要minio存储音频和文本文件,同时初期只使用一台机器
因此个人对github官网的file-uploader.go进行了改动:
endpoint := "127.0.0.1:9000"
accessKeyID := "minioadmin"
secretAccessKey := "minioadmin"
bucketName := "xxaudio"
location := "cn-north-1"
objectName := "output.wav"  这是自己准备的wav文件
filePath := "output.wav所在的全路径"
contentType := "application/wav"
修改完成后运行 
go run file-uploader.go
提示:
Put "https://127.0.0.1:9000/xxaudio/": http: server gave HTTP response to HTTPS client
那么官网(非github)有相应的回应:
https://docs.min.io/docs/how-to-secure-access-to-minio-server-with-tls.html
在这里我简单摘要一下自己可行的步骤:
openssl genrsa -out private.key 2048
编辑openssl.conf,复制官网内容即可
openssl req -new -x509 -nodes -days 730 -keyout private.key -out public.crt -config openssl.conf
cp private.key ${HOME}/.minio/certs
cp public.crt ${HOME}/.minio/certs
之后重新运行minio,然后go run file-uploader.go,提示
Put "https://127.0.0.1:9000/xxaudio/": x509: certificate signed by unknown authority
此时参考该网址的操作方法:
https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html
我的是ubuntu,因此只要将里面的ubuntu的命令中的foo.crt替换成public.crt就行了
go run file-uploader.go
提示成功上传
此时想要使用可视化界面验证是否上传成功,访问127.0.0.1:9000
此时发现不能直接访问,但是只要选择继续访问就行
但是输入账号密码之后,提示x509: certificate is valid for 127.0.0.1, not 192.168.205.130
解决方法是在openssl.conf里面加入:
IP.2 = 192.168.205.130
DNS.2 = localhost
重新生成私钥、证书,复制,更新信任的根证书,但是注意,此时要使用sudo update-ca-certificates --fresh,否则会不执行更新动作。
此时再次访问,发现可以登陆并查看到上传结果了
过了十几分钟,当我再次上传文件,然后想在浏览器中查看时,发现提示:
Client sent an HTTP request to an HTTPS server.
此时需要在浏览器地址栏中显示指定使用https://
而不能只输入127.0.0.1:9000