利用 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 天前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重1 天前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户8356290780511 天前
使用 Python 操作 Word 内容控件
后端·python
像我这样帅的人丶你还1 天前
啥? 前端也要会干Java?🛵🛵🛵
后端
Hommy881 天前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api
Fireworks1 天前
深入vue3源码解读 -- 1、响应式的基础概念
前端
程序员黑豆1 天前
JDK 下载安装与配置详细教程
java·前端·ai编程
hunterandroid1 天前
文件存储:内部存储与外部存储
前端
东方佑1 天前
FRSM 规模效应与架构对比补充报告
架构
CaffeinePro1 天前
FastAPI响应处理:返回值、状态码、响应头与异常标准化与案例解析
后端