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

相关推荐
风往哪边走1 分钟前
创建自定义语音录制View
android·前端
袁煦丞2 分钟前
【小白秒懂】远程监控服务器轻松又好玩!DashDot带你飞驰:cpolar内网穿透实验室第621个成功挑战
前端·程序员·远程工作
zayyo3 分钟前
JavaScript 的25个高级特性
前端
杨杨杨大侠3 分钟前
04 - 步骤执行器设计 🔧
后端·workflow
岁月宁静4 分钟前
软件开发核心流程全景解析 —— 基于 AI 多模态项目实践
前端·人工智能·后端
G等你下课6 分钟前
Function call
前端·人工智能
Mintopia6 分钟前
在浏览器里“养”一只会写字的仓鼠——AI SSE 流式文本生成全攻略
前端·javascript·aigc
岁月宁静6 分钟前
MCP 协议应用场景 —— Cursor 连接 Master Go AI
前端·vue.js·人工智能
呼啦啦呼_8 分钟前
geojson 地图数据如何合并区域的边界?
前端
文博知浅9 分钟前
时隔4个月,500+star,鸿蒙ArkTS vscode插件1.x已发布🎉完全重构,补全、类型提示、SDK下载管理切换一应俱全,更多新功能正在规划中...
前端·javascript·harmonyos