@crvouga/mockingbird-service-s3

中文文档
4.1.0发布于 2026/11/11MITTypeScriptES Module构建来源已验证近 30 天下载 1.7万

准确回答MinIO的状态 S3 模拟器: 每一桶,对象,多部分,版本,对象锁定,策略和认证 API,对照已录入的MinIO文字记录进行校验.

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 支助行动
  4. 认证模式
  5. 从米尼欧出发的地方
  6. 预言
  7. 管理和确定性控制
  8. 故意不模拟
  9. API 密码

@crvouga/mockingbird-service-s3 (英语)

本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .

精确回答为 米尼奥 做,所以它下降为MinIO,亚马逊S3和其他S3兼容存储在测试中. 每个行为都由差分的甲骨文所支撑:370个脚本情景(约3,800个HTTP交换)被记录在了针对MinIO的 RELEASE.2025-10-15T17-29-55Z,以及 bun test 重放每个对仿真器,并且需要相同的状态,头和XML字节来表示字节.

安装

npm install -D @crvouga/mockingbird-service-s3

仅限无害环境管理。 节点22+或Bun 1.2+.

使用量

将 SDK 端点指向模拟器并启用路径式地址 。 Fixture 证书被验证为预签请求;默认对为 fixture 编号 : fixture。 。 。 .

import { CreateBucketCommand, GetObjectCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3"
import { createServer } from "@crvouga/mockingbird-service-s3/server"

// Test setup: start the emulator and point the SDK's endpoint at it.
const server = await createServer()
const s3 = new S3Client({
  endpoint: server.url,
  region: "us-east-1",
  forcePathStyle: true,
  credentials: { accessKeyId: "fixture", secretAccessKey: "fixture" },
})

// Application code: the S3 SDK calls it already makes.
await s3.send(new CreateBucketCommand({ Bucket: "fixtures" }))
await s3.send(
  new PutObjectCommand({ Bucket: "fixtures", Key: "result.bin", Body: new Uint8Array([0, 255]) }),
)
const object = await s3.send(new GetObjectCommand({ Bucket: "fixtures", Key: "result.bin" }))
console.log(await object.Body?.transformToByteArray()) // Uint8Array(2) [ 0, 255 ]

await server.close()

设置应用程序的 S3 端点环境变量到服务器 URL 及其区域到 us-east-1。 。 。 .

支助行动

MinIO的S3路由器所服务的一切,都有MinIO的先行,验证顺序,出错代码和消息(出自MinIO自己的出错表):

  • 弹夹: CreateBucket(位置约束,对象锁定旗),HeadBucket,DevedBucket(包含. x-minio-force-delete), ListBuckets, GetBucketLocation, Get/PutBucketVersioning (包括MinIO的被排除在外的前缀), Get/Put/DeleteBucket政策和GetBucket政策状态, Get/Put/DeleteBucketTlaging, Get/Put/DeleteBucketLife循环, Get/Put/DeleteBucketEncrypt, Get/Put/DeleteBucketReplextation, Get/PutOboxLockfignation, ACL,网站,CL,加速,要求支付和记录分站,以及Minio的监听通知和复制扩展.
  • 对象: Put Object, Get Object, Head Object(系统和用户元数据,有条件读取和写入,每个范围表, partNumber, (中文(简体) ), response-* 更换、校验和 CRC32/CRC32C/CRC64NVME/SHA1/SHA256 x-amz-checksum-mode),复制对象(元数据和标记指令,复制源条件,版本),删除对象和删除对象(删除标记,无效版本),Get/Put/DeletobjectTlaging,Get/Putobject保留,Get/PutobjectLegalHold,Get/PutObjectAcl,GetObjectAtizes,还原对象,选择对象(CSV和JSON输入,基本SQL,事件流框架),浏览器POST上传(POST政策,V4和V2表签名).
  • 列名: 列出对象 V1, V2 和 metadata=true,列表objectversions,包括MinIO的标记和截取行为.
  • 多块: 创建、上传部分、上传部分、完整部分、中止部分、列表部分、列表多部分加载,并附有部分校验和 <md5>-N ETAG (英语).
  • 认证: SigV4 标题并预签,流线 aws-chunked (签名块和签名或未签名的拖车),SigV2头和预先签名,请求时间 skew,以及通过桶政策匿名访问.

GetObjectLambda 财务报告和审定财务报表 PutObjectExtract (雪球自动取出)答案 NotImplemented。 。 。 .

认证模式

  • authentication: "lenient" (默认):未签名的请求充当桶主和信头签名不检查,所以很简单 fetch 做测试 已指定 URL 仍在对照 credentials (默认) fixture 编号 : fixture) (中文(简体) ).
  • authentication: "strict": MinIO的认证准确无误. 每项请求都必须用下列语句签名: credentials,而匿名请求只有在桶政策允许的情况下才允许. 甲骨文运行于此模式.

region (默认) us-east-1)是签署区域和 x-amz-bucket-region 头曰.

从米尼欧出发的地方

  • Bucket CORS 键盘:MinIO只给"桶"CORS API打分,因此模拟器保留了Amazon S3的有记载的行为. 存储 CORSConfiguration 执行:飞行前通过第一个比对规则回答或拒绝使用 403 AccessForbidden,并匹配实际请求 Access-Control-* 头. 这不是神谕验证.
  • 虚拟托管地址数字 : Host: <bucket>.<base host> 名称桶( 基准主机默认为 localhost; 设置 virtualHosts,或 --virtual-host a,b,仅供路径样式使用.
  • 体积数字 : createServer 接受最高为每PUT或部分5个GiB(S3的极限;MinIO为5个TiB). createServer({ maxBodyBytes }) 低点.
  • 名单 总是读取实时数据, MinIO从第一页的快照中为后页服务.

预言

oracle/ 存储库中保存着带子、情景和录制的MINIO记录誊本. bun oracle/run.ts 重播他们与一个活的MINIO, --record 刷新记录;见 甲骨文/README.md。 。 。 .

管理和确定性控制

  • GET/POST /__admin/objects 检查一个对象的元数据或种子; GET /__admin/objects/:bucket/:key 下载其字节.
  • GET /__admin/uploads 检查活动上传和部分元数据.
  • 预设的缺陷是 slow_down, (中文(简体) ), access_denied, (中文(简体) ), expired_token和一发 truncate_stream。通用断层可以失败或重置下一个部分请求.
  • 推进共享仿真器时钟通过 /__admin/clock 以过期过期的 URL .
  • 对象写出,复制,多段补全,并删除发布S3形通知. 通过运行时间配置 HTTP 汇 webhooks 选项或共享的 webhook 管理员路由; 发送尝试和重试出现在下面 /__admin/webhooks。 。 。 .

共享运行时间还提供健康,重置,日记,衡量标准,时间表和断层路径. 选择孤立状态 x-mockingbird-namespace, (中文(简体) ), /__admin/ns/<name>,或者SigV4访问键映射.

故意不模拟

SSE-C和SSE-KMS加密(MinIO需要TLS和一个KMS给他们),IAM用户和根证书和桶政策以外的政策,实际应用生命周期规则或复制,以及真正的SQS送出. SQS消费者可以通过配置的HTTP槽来使用所捕获的通知有效载荷.

API 密码

  • S3API, (中文(简体) ), S3APIOptions:获取处理器和配置.
  • S3Notification, (中文(简体) ), S3Object (单位:千美元)ObjectVersion, (中文(简体) ), S3SeedObject, (中文(简体) ), BucketRecord, (中文(简体) ), MultipartUpload, (中文(简体) ), MultipartPart: 通知、状态和固定类型.
  • createRuntime, (中文(简体) ), S3Runtime, (中文(简体) ), S3RuntimeOptions:完整的"鸟"跑步时间和"网球"中枢.
  • S3_NAMESPACE, (中文(简体) ), S3_PRESETS, (中文(简体) ), accessKeyCredential:常数和故障控制.
  • S3_MAX_UPLOAD_BYTES: 默认请求正文限制 (5 GiB) for createServer。 。 。 .
  • document, (中文(简体) ), operationIds, (中文(简体) ), supportedOperationIds: 生成了 OpenAPI 元数据.
  • createServer, (中文(简体) ), S3ServerOptions, (中文(简体) ), DEFAULT_PORT, (中文(简体) ), serveTarget 从 ./server:节点HTTP适配器和CLI集成.

甲骨文 : 米尼奥 RELEASE.2025-10-15T17-29-55Z,与 亚马逊 S3 API 参考 为桶 CORS.

版本与发布记录

@crvouga/mockingbird-service-s3 共发布 41 个版本,首次发布于 2026/09/23;过去 12 个月发布了 41 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.1.0latest2026/11/11今天
4.0.82026/11/064 天前
4.0.72026/11/065 天前
4.0.62026/11/038 天前
4.0.52026/11/038 天前
4.0.42026/11/038 天前

关于 @crvouga/mockingbird-service-s3 的常见问题

@crvouga/mockingbird-service-s3 是什么?

准确回答MinIO的状态 S3 模拟器: 每一桶,对象,多部分,版本,对象锁定,策略和认证 API,对照已录入的MinIO文字记录进行校验.

如何安装 @crvouga/mockingbird-service-s3?

在项目目录运行 npm install @crvouga/mockingbird-service-s3,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mockingbird-s3,可以用 npx mockingbird-s3 直接运行。

@crvouga/mockingbird-service-s3 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@crvouga/mockingbird-service-s3 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@crvouga/mockingbird-service-s3 可以商用吗?

@crvouga/mockingbird-service-s3 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@crvouga/mockingbird-service-s3 的下载量有多少?

根据 npm 官方下载统计,@crvouga/mockingbird-service-s3 在 2026/10/11 – 2026/11/09 这 30 天内被下载 17,335 次,日均约 578 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@crvouga/mockingbird-service-s3 还在维护吗?

最新版本 4.1.0 发布于 2026/11/11(今天);至今共发布 41 个版本,其中过去 12 个月发布了 41 个;首次发布于 2026/09/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。