因此,我想模拟AWS开发工具包SDK2(仅S3服务),以便在没有真正的AWS的情况下将文件上传和下载到存储桶中。我正在寻找Java实现。
我发现了很多实现工具(Adobe S3Mock ... etc),但是它们都使用AWS SDK 1 ...
答案 0 :(得分:0)
您不应该自己重新实现S3 API。而是使用现有工具之一,例如localstack,MinIO,OpenStack 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的部分。