s3verify —— 验证 AWS S3 API 兼容性的简单工具

s3verify 对对象存储服务器执行一系列 API 调用,并检查响应是否与 AWS S3 签名版本 4 兼容。s3verify 采用 Apache V2.0 许可证。

我们为什么要构建 s3verify

亚马逊网络服务 (AWS) 的简单存储服务 (S3) 已成为首选的云存储,因此任何新的竞争服务都具有强烈动机使其 API 兼容。

AWS S3 API 的版本 4 已经成熟并变得非常广泛。AWS 现在支持超过 20 种不同的 API 以及这些 API 的无数变体。它不再仅仅是简单的 get/put 请求。

如果没有像 s3verify 这样的工具,几乎不可能频繁发布高质量版本。新的功能添加和 Pull Request 很容易导致回归并破坏现有的兼容性。

依赖其他 SDK 或库可能会掩盖错误。相反,s3verify 创建自己的手工 HTTP 请求并将其发送到用户指定的服务器。

s3verify 的主要目标是验证实现的正确性。对于每个可能的有效输入,都必须返回正确的响应。它还使用无效输入进行测试,并期望响应失败。可能的无效输入太多;但是当前的无效输入是一个良好的开端。

谁可以使用 s3verify

s3verify 旨在供应用程序开发人员和对象存储供应商使用。依赖 AWS S3 API 的应用程序可以使用 s3verify 消除云存储提供商引入的不兼容更改造成的错误。强烈建议对象存储供应商将其集成到其 CI 中,以阻止不兼容的更改逐渐出现。s3verify 旨在易于作为 CI 构建的一部分集成。

安装 s3verify

假设您有一个可用的 Go 环境,请将以下命令复制/粘贴到您的终端。如果您还没有 Go 环境,请按照此处的说明操作:安装 Go

$ go get -u https://github.com/minio/mint

结论

s3verify 旨在完整且健壮。请随时分叉我们的项目并贡献任何新的测试或功能。我们很乐意看到您的 Pull Request。

请注意,s3verify 已被 Mint 替换:https://github.com/minio/mint。Mint 是 Minio 对象服务器的测试框架,可作为 Docker 镜像使用。它运行正确性、基准测试和压力测试。

如有任何问题和好的评论,请加入我们的 Slack