Nodejs中使用Minio

Minio

安装Minio

MinIO下载

下载完,服务端和客户端后,最好像我这样做,去分一下路径。

在这里插入图片描述

在这里插入图片描述

安装完后,进入bin目录输入以下指令:

# 设置账户
setx MINIO_ROOT_USER admin

# 设置密码
setx MINIO_ROOT_PASSWORD password

# 启动服务
minio.exe server D:\minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9005"
  • minio.exe serever 启动服务

  • D:\minio\data 数据存放位置

  • –console-address “127.0.0.1:9000” 设置控制台端口

  • –address “127.0.0.1:9005” 设置服务端口

启动服务后需要注意这两个位置:

在这里插入图片描述

可以访问 http://127.0.0.1:9000 去查看控制台。

安装SDK

这里我就演示Node.js的SDK常用使用方法。

安装
yarn add minio
基本使用
// 引入
const Minio = require('minio')

// 初始化minio客户端
const minioClient = new Minio.Client({
  endPoint: '127.0.0.1',// 服务器的地址
  port: 9005,// 端口
  useSSL: false,// 是否使用 SSL 加密连接
  accessKey: 'minioadmin',
  secretKey: 'minioadmin'
})

// 上传文件到 MinIO (存储桶名称,对象名称,文件路径,上传结果)
minioClient.fPutObject('mybucket', 'myobject', './demofile.txt', (err, etag)=>{
  if (err) return console.log(err)
  console.log('File uploaded successfully.')
})
桶操作
创建
// (储桶的名称,储桶的区域)
minioClient.makeBucket('mybucket', 'us-east-1', function(err) {
  if (err) return console.log('Error creating bucket.', err)
  console.log('Bucket created successfully.')
})
列出存储桶
minioClient.listBuckets(function(err, buckets) {
  if (err) return console.log(err)
  console.log('Buckets:', buckets)
})
列出存储桶中的对象
// (存储桶的名称,对象的前缀,是否递归列出所有对象)
const stream = minioClient.listObjects('mybucket', '', true)
stream.on('data', function(obj) {
  console.log(obj)
})
stream.on('error', function(err) {
  console.log(err)
})
删除存储桶
minioClient.removeBucket('mybucket', function(err) {
  if (err) return console.log('Unable to remove bucket', err)
  console.log('Bucket removed successfully.')
})
设置存储桶策略
const policy = {
  Version: '2012-10-17',// 策略语法的版本
  Statement: [
    {
      Effect: 'Allow',// 指定声明的效果 Allow表示允许指定的操作。
      Principal: { AWS: ['*'] },// 指定被授权的主体 { AWS: ['*'] },表示所有 AWS 用户(包括匿名用户)。
      Action: ['s3:GetObject'],// 指定允许的操作 ['s3:GetObject'],表示允许获取对象(读取操作)。
      Resource: ['arn:aws:s3:::mybucket/*']// 指定受策略影响的资源 ['arn:aws:s3:::mybucket/*'],表示 mybucket 存储桶中的所有对象。
    }
  ]
}

// (存储桶的名称,策略对象转换为JSON字符串)
minioClient.setBucketPolicy('mybucket', JSON.stringify(policy), function(err) {
  if (err) return console.log(err)
  console.log('Bucket policy set successfully.')
})
获取存储桶策略
minioClient.getBucketPolicy('mybucket', function(err, policy) {
  if (err) return console.log(err)
  console.log('Bucket policy:', policy)
})
对象操作
下载对象
// (存储桶的名称,对象的名称,本地文件的路径)
minioClient.fGetObject('mybucket', 'myobject', './downloaded-myobject.txt', function(err) {
  if (err) return console.log(err)
  console.log('File downloaded successfully.')
})
删除对象
// (存储桶的名称,对象的名称)
minioClient.removeObject('mybucket', 'myobject', function(err) {
  if (err) return console.log('Unable to remove object', err)
  console.log('Removed the object successfully.')
})
获取对象的元数据
// (存储桶的名称,对象的名称)
minioClient.statObject('mybucket', 'myobject', function(err, stat) {
  if (err) return console.log(err)
  console.log(stat)
})
生成对象的预签名 URL
// (HTTP 方法,存储桶的名称,对象的名称,URL的有效时间以秒为单位)
const url = minioClient.presignedUrl('GET', 'mybucket', 'myobject', 24 * 60 * 60, function(err) {
  if (err) return console.log(err)
  console.log('Presigned URL:', url)
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值