如何在 Java 中模拟 AWS SDK 2 (S3)
How to mock AWS SDK2 (S3) in Java
所以我想模拟 AWS SDK 2.x(仅 S3 服务),以便在没有真实 AWS 的情况下测试上传和下载文件到存储桶。我正在寻找 Java 实现。
我发现了很多实现(Adobe S3Mock ...等),但它们都使用 AWS SDK 1.x。
您不应该自己重新实现 S3 API。相反,使用现有工具之一,例如 localstack, MinIO, OpenStack Swift and others. They all provide S3-compatible API (though some dif ferences can be). The best one for tests is localstack, IMHO.It is available as a Docker image,这样您就可以在本地或在 CI 管道中使用它。
不是你问题的 Java 部分。如果您是 JUnit 5 的幸运用户,我建议您使用 aws-junit5
,一组适用于 AWS 的 JUnit 5 扩展。而且,是的,我是它的作者。这些扩展可用于为 localstack 等工具提供的 AWS 服务注入客户端(实际上,支持任何与 AWS 兼容的 API,包括真正的 AWS 本身)。支持 AWS Java SDK v 2.x 和 v 1.x。您可以使用 aws-junit5
为 S3、DynamoDB、Kinesis、SES、SNS 和 SQS 注入客户端。
在 user guide, it even has a section about CI configuration with GitHub 阅读更多内容。
所以我想模拟 AWS SDK 2.x(仅 S3 服务),以便在没有真实 AWS 的情况下测试上传和下载文件到存储桶。我正在寻找 Java 实现。
我发现了很多实现(Adobe S3Mock ...等),但它们都使用 AWS SDK 1.x。
您不应该自己重新实现 S3 API。相反,使用现有工具之一,例如 localstack, MinIO, OpenStack Swift and others. They all provide S3-compatible API (though some dif ferences can be). The best one for tests is localstack, IMHO.It is available as a Docker image,这样您就可以在本地或在 CI 管道中使用它。
不是你问题的 Java 部分。如果您是 JUnit 5 的幸运用户,我建议您使用 aws-junit5
,一组适用于 AWS 的 JUnit 5 扩展。而且,是的,我是它的作者。这些扩展可用于为 localstack 等工具提供的 AWS 服务注入客户端(实际上,支持任何与 AWS 兼容的 API,包括真正的 AWS 本身)。支持 AWS Java SDK v 2.x 和 v 1.x。您可以使用 aws-junit5
为 S3、DynamoDB、Kinesis、SES、SNS 和 SQS 注入客户端。
在 user guide, it even has a section about CI configuration with GitHub 阅读更多内容。