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

相关推荐
车轮滚滚__2 分钟前
使用Nodejs基于DeepSeek加chromadb实现RAG检索增强生成 本地知识库
前端·javascript·ai·node.js·aigc
Gazer_S11 分钟前
【路径查询组件优化记录:数据处理与显示逻辑重构】
前端·javascript·重构
好_快18 分钟前
Lodash源码阅读-slice
前端·javascript·源码阅读
好_快18 分钟前
Lodash源码阅读-baseSlice
前端·javascript·源码阅读
好_快20 分钟前
Lodash源码阅读-isIterateeCall
前端·javascript·源码阅读
怒放吧德德20 分钟前
【MySQL性能优化】- MySQL调优与8.0新特性
后端·mysql·面试
子洋22 分钟前
AI 开发者必备:Vercel AI SDK 轻松搞定多厂商 AI 调用
前端·人工智能·后端
桂月二二24 分钟前
云原生服务网格:微服务通信的智能基础设施
微服务·云原生·架构
好_快27 分钟前
Lodash源码阅读-eq
前端·javascript·源码阅读
蝉叫醒了夏天27 分钟前
【 现代后端架构演进:微服务设计与云原生】
微服务·云原生·架构