WishMeLz

生活其实很有趣

Minio 之 Nodejs

docker run -p 9000:9000 -p 9090:9090 --net=host --name minio -d --restart=always -e "MINIO_SERVER_URL=http://111.73.12.186:9000" -e "MINIO_ACCESS_KEY=asd123" -e "MINIO_SECRET_KEY=ert123" -v /home/minio/data:/data -v /home/minio/config:/root/.minio minio/minio server  /data --console-address ":9090" -address ":9000"

MINIO_SERVER_URL:服务地址,文件分享的时候有用
MINIO_ACCESS_KEY:用户名
MINIO_SECRET_KEY:密码

连接

创建一个用户,使用用户名字和密码登录

const
    fs = require("fs"),
    Minio = require('minio');
mioConfig = {
    endPoint: '222.11.33.44', // 端点和服务器地址和端口
    port: 9000,
    useSSL: false, // 内网连接可以不使用ssl,否则需要配置证书
    accessKey: '3333', // 用户创建的访问和安全密钥
    secretKey: '44444'
};

官方文档 https://min.io/docs/minio/linux/developers/javascript/API.html#presignedUrl

试例

分享链接

minioClient.presignedUrl('GET', 'test1', 'img/zxc123.png', 10, function (err, presignedUrl) {
    if (err) return console.log(err)
    console.log(presignedUrl)
})

2024-04-08T09:24:43.png

创建Bucket

minioClient.makeBucket('mybucket', 'us-east-1', function (err) {
    if (err) return console.log('Error creating bucket.', err)
    console.log('Bucket created successfully in "us-east-1".')
})

上传

var file = './2223.png'
var fileStream = fs.createReadStream(file)
var fileStat = fs.stat(file, function (err, stats) {
    if (err) {
        return console.log(err)
    }
    minioClient.putObject('test1', 'img', fileStream, stats.size, function (err, objInfo) {
        if (err) {
            return console.log(err) // err should be null
        }
        console.log('Success', objInfo)
    })
})

添加域名

域名添加反向代理
环境变量修改 MINIO_DOMAIN=minio.xxx.cn, MINIO_SERVER_URL=https://minio.xxx.cn

const Minio = require('minio');
mioConfig = {
    endPoint: 'minio.xxx.cn', // 端点和服务器地址和端口
    port: 443,
    useSSL: true, // 内网连接可以不使用ssl,否则需要配置证书
    accessKey: '123', // 用户创建的访问和安全密钥
    secretKey: '456'
};