Nodejs中使用Minio

10,465次阅读
没有评论

共计 2354 个字符,预计需要花费 6 分钟才能阅读完成。

Minio

安装 Minio

MinIO 下载

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

Nodejs 中使用 Minio

Nodejs 中使用 Minio

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


setx MINIO_ROOT_USER admin


setx MINIO_ROOT_PASSWORD password


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

  • D:miniodata 数据存放位置

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

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

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

Nodejs 中使用 Minio

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

安装 SDK

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

安装
yarn add minio
基本使用

const Minio = require('minio')


const minioClient = new Minio.Client({
  endPoint: '127.0.0.1',
  port: 9005,
  useSSL: false,
  accessKey: 'minioadmin',
  secretKey: 'minioadmin'
})


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',
      Principal: { AWS: ['*'] },
      Action: ['s3:GetObject'],
      Resource: ['arn:aws:s3:::mybucket/*']
    }
  ]
}


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

const url = minioClient.presignedUrl('GET', 'mybucket', 'myobject', 24 * 60 * 60, function(err) {
  if (err) return console.log(err)
  console.log('Presigned URL:', url)
})

原文地址: Nodejs 中使用 Minio

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-10发表,共计2354字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)