0
本地开发需要S3服务时,大多数人第一反应是拉个MinIO容器。但有个问题被忽略了:当你的需求只是跑通几行上传下载代码时,真的需要一整个对象存储服务器吗?
BentoS3的作者也问过自己这个问题。他的团队原本用MinIO做本地S3替代,但被困在旧版本——项目方向改变后,免费版UI砍掉了不少功能,维护状态也变得不明朗。更麻烦的是集成测试:为了测试几段调用S3的代码,每次都要起容器,反馈循环被拖慢。
所以他们做了个更轻的选择。BentoS3不是生产级对象存储,也不追求S3 API全覆盖。它只实现作者实际用过的那部分API,目标就三个:小体积、可嵌入、行为可预测。
用法有两种。命令行启动最快:npx bentos3 serve,默认监听127.0.0.1:9000,数据存在./.bentos3。第一次启动会自动生成访问密钥,并提供一个服务端渲染的仪表盘。也可以装成Node.js库,直接嵌进Vitest或Jest的测试流程里,省掉Docker开销。
兼容层针对AWS SDK for JavaScript v3设计,关键配置是自定义端点加path-style寻址。数据默认落盘本地文件系统,CI环境里不用拉外部服务。
这个项目的取舍很清晰:不跟MinIO拼功能完整度,只解决"本地开发和测试需要S3端点"这个具体场景。如果你的S3用法比较复杂,可能还是得用完整方案。但对很多团队来说,少维护一个容器镜像,测试反馈快几秒,这些小事累积起来就是开发体验的差异。