如何在Java中模拟AWS SDK2(S3)
所以我想模拟AWS SDK 2.x(仅S3服务),以便在没有真正的AWS的情况下将文件上传和下载到bucket。我正在寻找一个Java实现如何在Java中模拟AWS SDK2(S3),java,amazon-s3,mocking,aws-sdk,stub,Java,Amazon S3,Mocking,Aws Sdk,Stub,所以我想模拟AWS SDK 2.x(仅S3服务),以便在没有真正的AWS的情况下将文件上传和下载到bucket。我正在寻找一个Java实现 我发现了很多实现(AdobeS3mock…等),但它们都使用AWS SDK 1.x。您不应该自己重新实现S3API。相反,请使用现有的工具之一,如、和其他工具。它们都提供与S3兼容的API(尽管可能存在一些差异)。最好的测试方法是localstack,IMHO。它可以作为一个组件提供,因此您可以在本地或CI管道中使用它 不是你问题的Java部分。如果您是JU
我发现了很多实现(AdobeS3mock…等),但它们都使用AWS SDK 1.x。您不应该自己重新实现S3API。相反,请使用现有的工具之一,如、和其他工具。它们都提供与S3兼容的API(尽管可能存在一些差异)。最好的测试方法是localstack,IMHO。它可以作为一个组件提供,因此您可以在本地或CI管道中使用它 不是你问题的Java部分。如果您是JUnit 5的幸运用户,我建议您使用一组JUnit 5 AWS扩展。是的,我是它的作者。这些扩展可用于为localstack等工具提供的AWS服务注入客户端(实际上,支持任何与AWS兼容的API,包括真实的AWS本身)。AWS Java SDK v2.x和v1.x都受支持。您可以使用aws-junit5为S3、DynamoDB、Kinesis、SES、SNS和SQS注入客户端
请阅读中的更多内容,它甚至有一节介绍了。如果没有docker,如何模拟S3client。我正在为S3编写单元测试用例。你能在localStack或MinIO中发布一些模拟S3Client(aws sdk v2)的示例吗?只想这样测试:S3Client S3Client=S3Client.builder().region(region).credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(“foo”,“bar”)).endpointOverride(URI.create(“)).httpClient(UrlConnectionHttpClient.builder().buildWithDefault(AttributeMap.builder().put(TRUST_ALL_CERTIFICATES,java.lang.Boolean.TRUE).build()).build();