Nodejs中使用Minio

news2024/12/25 9:03:24

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)
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114280.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效办公必备!图片转PDF功能,让工作更轻松

在数字化时代,将图片转换为PDF格式是一项非常实用的技能;无论是在工作、学习还是生活中,我们都可能遇到需要将图片转化为PDF格式的情况;今天通过这篇文章给大家分享四款好用的图片转pdf 的工具: 第一款:福…

flutter开发实战-flutter web加载html及HtmlElementView的使用

flutter开发实战-flutter web加载html及HtmlElementView的web控件 HtmlElementView 是 Flutter 中用于嵌入 HTML 内容的 widget。这个 widget 允许你将一个 HTML 元素嵌入到 Flutter 应用中。 一、HtmlElementView基本使用 在工程的pubspec.yaml中引入插件 HtmlElementView…

多波束EM2040D以及POSMV使用记录

多波束EM2040D采集软件SIS4.3升级到SIS5.11之后,我们碰到了很多问题,现在将问题和解决过程记录一下。 1、SIS5软件打不开 SIS5软件打不开,报KSlSMainApp has stopped working弹框。 ​ 判断是电脑问题,更新最新win10系统&#…

ue5 伤害插件

主角或敌人都能用的插件,复用性很高 首先创建以下插件、接口、类型文件 两个枚举中的参数名称,E_DamageResponse区分是各个伤害后的反应,比如不同伤害造成的动画或粒子特效等的不同,E_DamageType是伤害类型,有各种伤害…

【网络安全】空字节绕过:URL回调+XSS+SQL绕WAF

未经许可,不得转载。 文章目录 空字节URL回调XSSSQL空字节 \0,也称为null字节,是一个值为零的特殊字符。在编程中,通常用来表示字符串的结束。攻击者可以利用null字节注入来绕过一些验证或过滤机制。 以下三个漏洞,空字节功不可没。 URL回调 密码重置功能,发起请求后…

【牛站 / USACO2007】

题目 思路 离散化(降低空间复杂度) 点的编号 ∈ [ 1 , 1000 ] ,但是点的个数最多为 2 ⋅ T ∈ [ 4 , 200 ] 点的编号 \in [1, 1000],但是点的个数最多为 2 \cdot T \in[4, 200] 点的编号∈[1,1000],但是点的个数最多为…

【NLP】大模型长文本处理技术与GLM-4-Plus评测

本文将介绍Transformer模型在处理长文本数据时所采用的关键技术,特别是旋转位置编码(RoPE)和Flash Attention机制。 此外,本文介绍GLM系列模型,特别是最新发布的GLM-4-Plus模型。我们将通过实际的评测方法和结果&…

管理学习(一)马云《赢在中国》创业演讲整理

目录 一、小公司也需要制度二、不要害怕冒险三、创业者要的不是技术,而是胆识四、不要惧怕和大企业竞争五、理念不一样,老板永远是对的六、要真实地为客户创造价值七、跟风险投资谈判,说到要做到八、风险投资,只能帮你不能救你九、…

24秋开学考

文件上传 上传一个.php的格式,上面说是非法的文件格式。 2.传了一个phpinfo.gif,说什么在目录里。 3.有两个页面一个labs1一个labs2 ,当在第一个页面上传1.jpg,在第二个页面上传1.jpg时,给了我们一个目录,在测试其他时…

[图解]识别类和属性-投资少见效快产量高

1 00:00:00,530 --> 00:00:04,360 接下来,我们就要来识别实体类和属性了 2 00:00:05,670 --> 00:00:07,260 前面也讲了,从哪里识别 3 00:00:08,120 --> 00:00:11,470 从用例规约那里来识别 4 00:00:12,400 --> 00:00:15,770 在识别的时候…

气膜体育馆投资前景广阔:健康产业中的新兴机遇—轻空间

气膜体育馆作为一种新型的建筑形式,为投资者带来了丰富的商业机会。随着全民健身的理念普及,气膜体育馆在市场上逐渐展现出巨大潜力。 市场需求不断增长 随着健康意识提升,人们对运动场地的需求日益增加。气膜体育馆凭借其灵活的建筑形式&…

【线性代数】正定矩阵,二次型函数

本文主要介绍正定矩阵,二次型函数,及其相关的解析证明过程和各个过程的可视化几何解释(深蓝色字体)。 非常喜欢清华大学张颢老师说过的一段话:如果你不能用可视化的方式看到事情的结果,那么你就很难对这个…

select、poll、epoll的区别

select、poll、epoll均为linux中的多路复用技术。3种技术出现的顺序是select、poll、epoll,3个版本反应了多路复用技术的迭代过程。我们现在开发网络应用时, 一般都会使用多路复用,很少有用一个线程来监听一个fd的,其中epoll又是最…

鸿蒙开发5.0【Picker的受限权限适配方案】

Picker由系统独立进程实现,应用可以通过拉起Picker组件,用户在Picker上选择对应的资源(如图片、文档等),应用可以获取Picker返回的结果。 类型受限权限使用的picker音频ohos.permission.READ_AUDIO,ohos.p…

【无人机设计与控制】 四轴飞行器的位移控制

摘要 本文介绍了一种四轴飞行器的位移控制方法,并通过Simulink模型进行仿真和验证。该方法通过PID控制器对飞行器的位移进行精确调节,以实现飞行器在三维空间中的稳定定位和路径跟踪。通过参数调节,能够适应不同的飞行任务需求,确…

UnLua环境搭建

一、环境搭建 1、下载UnLua工程:https://github.com/Tencent/UnLua 2、复制Plugins/UnLua目录下的插件到自己的项目中 3、重新生成自己的VS工程 4、打开VS工程的项目名.Build.cs文件,引用UnLua插件,重新编译工程 PublicDependencyModuleNames.AddRan…

【Nacos】Nacos快速上手使用(注册中心)【详解】

文章目录 1.基本介绍2. 使用Nacos服务注册中心2.1创建Nacos提供者集群 8001,80022.2创建Nacos消费者集群 8887 1.基本介绍 Nacos(Dynamic Naming and Configuration Service)是服务中心的另外一种实现。从注册中心的功能实现角度,与Eureka等价&#xff…

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄…

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。…

教师节送什么礼物给老师好 送礼送什么显高档又实用

教师节送什么礼物给老师好 送礼送什么显高档又实用 教师节即将到来,许多学生和家长都在思考如何表达对老师的感激之情。选择一份合适的礼物不仅能够表达心意,还能让老师感受到学生的关心和尊重。那么,送什么礼物给老师既显高档又实用呢&#…