Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中模拟AWS SDK2(S3)_Java_Amazon S3_Mocking_Aws Sdk_Stub - Fatal编程技术网

如何在Java中模拟AWS SDK2(S3)

如何在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

所以我想模拟AWS SDK 2.x(仅S3服务),以便在没有真正的AWS的情况下将文件上传和下载到bucket。我正在寻找一个Java实现


我发现了很多实现(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();