Я взял справочную форму здесь, чтобы реализовать имитацию S3 для интеграционного тестирования.
Мое замешательство и то, что я не понял, заключается в том, как я могу использовать здесь докер? Мне нужно что-то устанавливать?
Я только что добавил код ниже в свой maven
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-datapipeline</artifactId>
<version>1.11.295</version>
</dependency>
И написали ниже класса
package com.amazonaws.lambda.demo;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.AnonymousAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Builder;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import io.findify.s3mock.S3Mock;
public class S3Mock {
S3Mock api = new S3Mock.Builder().withPort(8001).withInMemoryBackend().build();
api.start();
AmazonS3Client client = new AmazonS3Client(new AnonymousAWSCredentials());
// use local API mock, not the AWS one
client.setEndpoint("http://127.0.0.1:8001");
client.createBucket("testbucket");
client.putObject("testbucket", "file/name", "contents");
}
Но я не могу скомпилировать свой класс. Может ли какой-нибудь орган помочь мне понять, что еще мне нужно сделать, чтобы заставить эту работу работать?




Я считаю, что у вас есть пропустил зависимость для S3Mock, который поставляется ниже maven:
<dependency>
<groupId>io.findify</groupId>
<artifactId>s3mock_2.12</artifactId>
<version>0.2.5</version>
<scope>test</scope>
</dependency>
Кроме того, я предлагаю вам переименовать свой класс с S3Mock во что-то вроде AmazonS3Mock, чтобы избежать путаницы с пространством имен.