minio启动时候指定数据目录,配置文件,密钥文件目录,环境文件
1.创建minio用户,专门用于服务启动的
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
2.在当前用户目录下创建minio目录,存储minio相关文件
mkdir minio
在minio目录下创建数据目录和密钥文件目录,和配置文件目录
cd minio
mkdir data
mkdir certs
mkdir conf
在conf目录下创建环境变量文件,初始化控制台访问用户及密码
cd conf
vim .env
添加环境变量:
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
certs:
将密钥文件复制到该目录下,文件的名称定死
private.key
public.crt
cd conf:配置配置文件
vim config.json
{
"version": "35",
"credential": {
"accessKey": "minio",
"secretKey": "minio"
},
"region": "cn-north-1",
"logger": {
"console": {
"enable": true
},
"file": {
"enable": false,
"filename": ""
}
},
"storageclass": {
"standard": "EC:2"
},
"api": {
"port": "9000",
"https": {
"enable": true,
"address": ":9000"
}
}
}
授权:chown -R minio-user:minio-user minio
su minio-user
minio ./minio/data --certs-dir ./minio/certs --config-dir ./minio/conf --env-file ./minio/conf/.env
如果使用了官网的教程
使用minio-user作为启动用户
准备好:文件名要定死,因为minio只认识key和crt文件
将xxxxx.key重命名为private.key
将xxxxx.pem重命名为public.crt
将这两个文件放到/home/minio-user/.minio/certs/ 目录下
chown -r minio-user:minio-user /home/minio-user/.minio 保证执行用户有权限
vim /etc/default/minio
增加秘钥文件位置指定和以https方式启动
MINIO_HTTP_SERVER="https"
MINIO_CERT_FILE="/home/minio-user/.minio/certs/public.crt"
MINIO_KEY_FILE="/home/minio-user/.minio/certs/private.key"
如果需要修改:api端口
MINIO_PORT="443"
代码需要修改三次:
客户端启用https连接:
c, err := minio.New(address, &minio.Options{ Creds: credentials.NewStaticV4(conf.GlobalConf.Minio.AccessKey, conf.GlobalConf.Minio.SecurityKey, ""), Secure: true, Transport: httpClient.Transport, Region: "cn-north-1", })
第二个:是否跳过https验证:
httpClient := &http.Client{ Timeout: 30 * time.Second, // 设置超时时间 Transport: &http.Transport{ MaxIdleConns: 10, // 最大空闲连接数 MaxIdleConnsPerHost: 10, // 每个主机的最大空闲连接数 IdleConnTimeout: 90 * time.Second, TLSClientConfig: &tls.Config{ InsecureSkipVerify: true, // 忽略证书验证 }, }, }
第三个 返回的时候返回https
return fmt.Sprintf("https://%v:%v/%v%v", conf.GlobalConf.Minio.Host, conf.GlobalConf.Minio.Port, bm.BucketName, bm.ObjectName)