为什么需要
出海做产品需要文件存储(用户上传、图片、文档)。AWS S3 好用但贵,小项目每月几十刀不划算。MinIO 是 S3 兼容的对象存储,自托管免费,API 完全兼容 S3,代码一行不改就能从 S3 迁移过来。
怎么用
bash
docker run -d -p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=your-password \
minio/minio server /data --console-address :9001
打开管理后台创建 Bucket,用 AWS SDK 调用(完全兼容 S3 API):
javascript
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
const s3 = new S3Client({ endpoint: 'http://localhost:9000', forcePathStyle: true });
await s3.send(new PutObjectCommand({ Bucket: 'uploads', Key: 'file.pdf', Body: fileBuffer }));
注意事项
- 定价:完全免费开源(GNU AGPLv3)
- 局限:AGPLv3 要求修改源码后必须开源,商用要注意;单机部署没有高可用