利用 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 文档

相关推荐
Gopher_HBo5 分钟前
Disruptor消费源码分析
后端
CDN3608 分钟前
DNS 负载均衡技术架构与调度策略解析
运维·架构·负载均衡
ppandss19 分钟前
JavaWeb从0到1-DAY4-AJAX
前端·ajax·okhttp
千寻girling17 分钟前
滑动窗口刷了快一个月(26天)了 , 还没有刷完. | 含(操作系统学什么的Java 后端)
java·开发语言·javascript·c++·人工智能·后端·python
涵涵(互关)26 分钟前
语法大全-only-writer-two
前端·vue.js·typescript
huangql52028 分钟前
浏览器 Location API、History API、路由记录与支付跳转完全指南
前端
木斯佳30 分钟前
前端八股文面经大全:腾讯前端实习一面(2026-04-27)·面经深度解析
前端·八股·面经
天天进步201531 分钟前
魔音漫创源码解析:架构总览:Electron 30 + React 18 + Zustand,构建桌面级影视生产工具
react.js·架构·electron
thatway198932 分钟前
太奶也能看懂的 M100 芯片故事
后端
sayamber35 分钟前
Kubernetes 生产环境避坑指南:10 个真实故障案例与解决方案
前端