利用 Minio 自建高性能 OSS 入门指南

Minio 是一个高性能的分布式对象存储服务,它与亚马逊 S3 兼容。

启动 docker 的 Minio 容器

首先,我们需要安装 docker 桌面端

打开 Docker 桌面端,搜索 Minio 镜像:

填写信息:

  • 容器名(name):自定义容器名称。
  • 端口映射(port):将本地 9000 和 9001 端口映射到容器内。
  • 数据卷(volume):挂载本地目录到容器内的数据目录,例如 /bitnami/minio/data。
  • 环境变量:设置 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 作为登录凭据。

点击 run 运行镜像为容器。

访问 Minio 管理界面

  1. 访问 http://localhost:9001
  2. 输入之前设置的用户名和密码进入管理界面:

管理存储桶与文件

在管理界面中,可以创建和管理存储桶(bucket)和对象(object):

可以在这个桶中上传文件:

点击 share 就可以看到这个文件的 url:


带了很长一串密钥才能访问。

设置文件访问权限

默认情况下,文件访问权限不是公开的。您可以添加匿名访问规则以允许直接访问文件:

不带后面那串密钥也可以访问了:

使用 SDK 上传和下载文件

安装 Minio 包:

bash 复制代码
npm install minio

代码:

javascript 复制代码
var Minio = require('minio')

var minioClient = new Minio.Client({
  endPoint: 'localhost',
  port: 9000,
  useSSL: false,
  accessKey: 'your-accessKey',
  secretKey: 'your-secretKey',
})

// 上传文件
function put() {
    minioClient.fPutObject('bucket-name', 'object-name', 'file-path', function (err, etag) {
        if (err) return console.log(err)
        console.log('上传成功');
    });
}

// 下载文件
function get() {
    minioClient.getObject('bucket-name', 'object-name', (err, stream) => {
        if (err) return console.log(err)
        stream.pipe(fs.createWriteStream('output-file-path'));
    });
}

// 调用函数
put();
get();

这里可以创建 accessKey:

所有 OSS 服务(如阿里云 OSS、Minio)其实都是相似的,因为它们都遵循 AWS 的 Simple Storage Service(S3)规范。

因此,无论使用哪家服务,其操作方式大致相同。

更多的 api 用法可以看 minio 文档

相关推荐
Assby5 分钟前
Java开发者学习Go语言:Go开发和Java开发的一些区别
后端·go
吃吃喝喝小朋友5 分钟前
Django Admin后台系统
后端·python·django
青青家的小灰灰10 分钟前
深入理解 JavaScript 箭头函数:从语法糖到核心机制
前端·javascript·面试
数据智能老司机11 分钟前
面向流的架构——使用战略性领域驱动设计设计解决方案空间
架构
cxxcode13 分钟前
Web Vitals 数据采集机制分析
前端
树獭叔叔13 分钟前
检索增强生成(RAG):让大模型突破知识边界
后端·aigc·openai
sniper17 分钟前
AI+Shopify 前端开发:实战一年后,聊聊 AI Agent 和前端的生死局
前端
南囝coding17 分钟前
OpenClaw 到底能干什么?可以看看这 60 个真实用例
前端·后端
gs8014017 分钟前
拒绝单句 Prompt 摸盲盒:从 smolagents 看复杂多智能体 (Multi-Agent) 架构落地实践
架构·prompt
重庆穿山甲21 分钟前
Java开发者的大模型入门:AgentScope Java组件全攻略(二)
前端·后端