如何在Java中模拟AWS开发工具包SDK 2(S3)

时间:2019-04-04 08:28:51

标签: java amazon-s3 mocking aws-sdk stub

因此,我想模拟AWS开发工具包SDK2(仅S3服务),以便在没有真正的AWS的情况下将文件上传和下载到存储桶中。我正在寻找Java实现。

我发现了很多实现工具(Adobe S3Mock ... etc),但是它们都使用AWS SDK 1 ...

1 个答案:

答案 0 :(得分:0)

您不应该自己重新实现S3 API。而是使用现有工具之一,例如localstackMinIOOpenStack Swift和其他工具。它们都提供与S3兼容的API(尽管可能存在一些差异)。最好的测试方法是localstack,即IMHO。它以Docker image的形式提供,因此您可以在本地或CI管道中使用它。

不涉及您的Java问题。如果您是JUnit 5的幸运用户,我建议您使用aws-junit5,这是AWS的一组JUnit 5扩展。而且,是的,我是作者。这些扩展可用于为由诸如localstack之类的工具提供的AWS服务注入客户端(实际上,支持任何与AWS兼容的API,包括实际的AWS本身)。同时支持AWS Java SDK v 2.x和v1.x。您可以使用aws-junit5为S3,DynamoDB,Kinesis,SES,SNS和SQS注入客户端。

user guide中了解更多,甚至还有关于CI configuration with GitLab的部分。