[Java] Test S3 Upload / Download mit "S3 Ninja"

Der Test-Dummy-Server für S3 heißt Fake S3. Ich habe gehört, dass es Ruby zu sein scheint, und da ich ein Java-Shop bin, habe ich nach Java gesucht, aber ich habe [S3 ninja] gefunden (http://s3ninja.net/).

S3 ninja

ninja.jpg

Also lass es uns benutzen. Lass es uns tun. Fake S3 kommt wieder.

Schreiben Sie einen Testcode

Normalerweise scheint es heruntergeladen und verwendet zu werden, aber da es problematisch ist, werde ich es dieses Mal mit maven installieren und es zwingen, mit Junit zu beginnen.

pom.xml

pom.xml


		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-s3</artifactId>
			<version>1.11.91</version>
		</dependency>
		<dependency>
			<groupId>com.scireum</groupId>
			<artifactId>s3ninja</artifactId>
			<version>2.7</version>
		</dependency>

JUnit-Code

Test.java


	static {
		//Grabe den gewünschten Ordner
		try {
			Files.createDirectories(Paths.get("data/s3"));
		} catch (IOException e) {
		}

		//Starten Sie s3ninja
		Thread thread = new Thread(() -> {
			try {
				Method main = Class.forName("IPL").getMethod("main", new Class[] { String[].class });
				main.invoke(null, (Object) new String[0]);
			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		});
		thread.start();

		try {
			Thread.sleep(1000);//Nur für den Fall
		} catch (InterruptedException e) {
		}

	}

	@Test
	public void test() throws IOException {
		AmazonS3 s3 = AmazonS3Client.builder()
				.withEndpointConfiguration(new EndpointConfiguration("http://localhost:9444/s3", null))
				.withCredentials(new AWSStaticCredentialsProvider(
						new BasicAWSCredentials("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")))
				.withPathStyleAccessEnabled(true)
				.withClientConfiguration(new ClientConfiguration().withSignerOverride("S3SignerType"))
				.build();

		//hochladen
		s3.putObject(new PutObjectRequest("bucket", "s3test.txt", new File("test.txt")));

		//herunterladen
		try (S3Object s3Object = s3.getObject(new GetObjectRequest("bucket", "s3test.txt"));
				InputStream input = s3Object.getObjectContent()) {
			assertThat(IOUtils.toByteArray(input), is(Files.readAllBytes(Paths.get("test.txt"))));
		}

	}

Erläuterung


Referenz: Ich habe einen Ninja namens local S3 eingegeben

Recommended Posts

[Java] Test S3 Upload / Download mit "S3 Ninja"
Laden Sie Notizen in Java auf S3 hoch und laden Sie sie herunter
Bild-Upload mit CarrierWave ~ Rspec-Test ~
[Hinweis] Von S3 herunterladen, auf S3 hochladen
Laden Sie Dateien mit Java HttpURLConnection hoch
Hochladen / Herunterladen / Löschen von Daten in S3 mithilfe von Amazon S3 Client Builder mit AWS SDK für Java
Primzahlbeurteilung Java
Versuchen Sie es mit der RestClient Test-Klasse der REST-API-Java von JobScheduler.
Geschichte der Testautomatisierung mit Appium [Android / Java]
Sortieren mit Java-Komparator
Bequemer Download mit JAVA
Schrottpraxis mit Java ②
Java Unit Test Library-Arterien-Probe
Schrottpraxis mit Java ①
Java-Download mit Ansible