diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClient.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClient.java index 09a3af01c..03ca85b9e 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClient.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClient.java @@ -28,7 +28,6 @@ import com.google.cloud.storage.multipartupload.model.ListPartsResponse; import com.google.cloud.storage.multipartupload.model.UploadPartRequest; import com.google.cloud.storage.multipartupload.model.UploadPartResponse; -import java.net.URI; /** * A client for interacting with Google Cloud Storage's Multipart Upload API. @@ -111,7 +110,6 @@ public abstract CompleteMultipartUploadResponse completeMultipartUpload( public static MultipartUploadClient create(MultipartUploadSettings config) { HttpStorageOptions options = config.getOptions(); return new MultipartUploadClientImpl( - URI.create(options.getHost()), options.createRetrier(), MultipartUploadHttpRequestManager.createFrom(options), options.getRetryAlgorithmManager()); diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClientImpl.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClientImpl.java index 00b43c6ba..d67ed8ab5 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClientImpl.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadClientImpl.java @@ -27,7 +27,6 @@ import com.google.cloud.storage.multipartupload.model.ListPartsResponse; import com.google.cloud.storage.multipartupload.model.UploadPartRequest; import com.google.cloud.storage.multipartupload.model.UploadPartResponse; -import java.net.URI; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -38,17 +37,14 @@ final class MultipartUploadClientImpl extends MultipartUploadClient { private final MultipartUploadHttpRequestManager httpRequestManager; private final Retrier retrier; - private final URI uri; private final HttpRetryAlgorithmManager retryAlgorithmManager; MultipartUploadClientImpl( - URI uri, Retrier retrier, MultipartUploadHttpRequestManager multipartUploadHttpRequestManager, HttpRetryAlgorithmManager retryAlgorithmManager) { this.httpRequestManager = multipartUploadHttpRequestManager; this.retrier = retrier; - this.uri = uri; this.retryAlgorithmManager = retryAlgorithmManager; } @@ -56,7 +52,7 @@ final class MultipartUploadClientImpl extends MultipartUploadClient { public CreateMultipartUploadResponse createMultipartUpload(CreateMultipartUploadRequest request) { return retrier.run( retryAlgorithmManager.nonIdempotent(), - () -> httpRequestManager.sendCreateMultipartUploadRequest(uri, request), + () -> httpRequestManager.sendCreateMultipartUploadRequest(request), Decoder.identity()); } @@ -65,7 +61,7 @@ public ListPartsResponse listParts(ListPartsRequest request) { return retrier.run( retryAlgorithmManager.idempotent(), - () -> httpRequestManager.sendListPartsRequest(uri, request), + () -> httpRequestManager.sendListPartsRequest(request), Decoder.identity()); } @@ -74,7 +70,7 @@ public AbortMultipartUploadResponse abortMultipartUpload(AbortMultipartUploadReq return retrier.run( retryAlgorithmManager.idempotent(), - () -> httpRequestManager.sendAbortMultipartUploadRequest(uri, request), + () -> httpRequestManager.sendAbortMultipartUploadRequest(request), Decoder.identity()); } @@ -83,7 +79,7 @@ public CompleteMultipartUploadResponse completeMultipartUpload( CompleteMultipartUploadRequest request) { return retrier.run( retryAlgorithmManager.idempotent(), - () -> httpRequestManager.sendCompleteMultipartUploadRequest(uri, request), + () -> httpRequestManager.sendCompleteMultipartUploadRequest(request), Decoder.identity()); } @@ -96,7 +92,7 @@ public UploadPartResponse uploadPart(UploadPartRequest request, RequestBody requ if (dirty.getAndSet(true)) { requestBody.getContent().rewindTo(0); } - return httpRequestManager.sendUploadPartRequest(uri, request, requestBody.getContent()); + return httpRequestManager.sendUploadPartRequest(request, requestBody.getContent()); }, Decoder.identity()); } diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadHttpRequestManager.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadHttpRequestManager.java index be3a06730..39e676c1b 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadHttpRequestManager.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/MultipartUploadHttpRequestManager.java @@ -58,20 +58,26 @@ final class MultipartUploadHttpRequestManager { private final HttpRequestFactory requestFactory; private final ObjectParser objectParser; private final HeaderProvider headerProvider; + private final URI uri; MultipartUploadHttpRequestManager( - HttpRequestFactory requestFactory, ObjectParser objectParser, HeaderProvider headerProvider) { + HttpRequestFactory requestFactory, + ObjectParser objectParser, + HeaderProvider headerProvider, + URI uri) { this.requestFactory = requestFactory; this.objectParser = objectParser; this.headerProvider = headerProvider; + this.uri = uri; } CreateMultipartUploadResponse sendCreateMultipartUploadRequest( - URI uri, CreateMultipartUploadRequest request) throws IOException { + CreateMultipartUploadRequest request) throws IOException { String createUri = UriTemplate.expand( - uri.toString() + "{bucket}/{key}?uploads", + uri.toString(), + "{bucket}/{key}?uploads", ImmutableMap.of("bucket", request.bucket(), "key", request.key()), false); @@ -85,7 +91,7 @@ CreateMultipartUploadResponse sendCreateMultipartUploadRequest( return httpRequest.execute().parseAs(CreateMultipartUploadResponse.class); } - ListPartsResponse sendListPartsRequest(URI uri, ListPartsRequest request) throws IOException { + ListPartsResponse sendListPartsRequest(ListPartsRequest request) throws IOException { ImmutableMap.Builder params = ImmutableMap.builder() @@ -101,7 +107,8 @@ ListPartsResponse sendListPartsRequest(URI uri, ListPartsRequest request) throws String listUri = UriTemplate.expand( - uri.toString() + "{bucket}/{key}{?uploadId,max-parts,part-number-marker}", + uri.toString(), + "{bucket}/{key}{?uploadId,max-parts,part-number-marker}", params.build(), false); HttpRequest httpRequest = requestFactory.buildGetRequest(new GenericUrl(listUri)); @@ -111,12 +118,13 @@ ListPartsResponse sendListPartsRequest(URI uri, ListPartsRequest request) throws return httpRequest.execute().parseAs(ListPartsResponse.class); } - AbortMultipartUploadResponse sendAbortMultipartUploadRequest( - URI uri, AbortMultipartUploadRequest request) throws IOException { + AbortMultipartUploadResponse sendAbortMultipartUploadRequest(AbortMultipartUploadRequest request) + throws IOException { String abortUri = UriTemplate.expand( - uri.toString() + "{bucket}/{key}{?uploadId}", + uri.toString(), + "{bucket}/{key}{?uploadId}", ImmutableMap.of( "bucket", request.bucket(), "key", request.key(), "uploadId", request.uploadId()), false); @@ -129,7 +137,7 @@ AbortMultipartUploadResponse sendAbortMultipartUploadRequest( } CompleteMultipartUploadResponse sendCompleteMultipartUploadRequest( - URI uri, CompleteMultipartUploadRequest request) throws IOException { + CompleteMultipartUploadRequest request) throws IOException { String completeUri = UriTemplate.expand( uri.toString() + "{bucket}/{key}{?uploadId}", @@ -149,7 +157,7 @@ CompleteMultipartUploadResponse sendCompleteMultipartUploadRequest( } UploadPartResponse sendUploadPartRequest( - URI uri, UploadPartRequest request, RewindableContent rewindableContent) throws IOException { + UploadPartRequest request, RewindableContent rewindableContent) throws IOException { String uploadUri = UriTemplate.expand( uri.toString() + "{bucket}/{key}{?partNumber,uploadId}", @@ -190,7 +198,8 @@ static MultipartUploadHttpRequestManager createFrom(HttpStorageOptions options) return new MultipartUploadHttpRequestManager( storage.getRequestFactory(), new XmlObjectParser(new XmlMapper()), - options.getMergedHeaderProvider(FixedHeaderProvider.create(stableHeaders.build()))); + options.getMergedHeaderProvider(FixedHeaderProvider.create(stableHeaders.build())), + URI.create(options.getHost())); } private void addChecksumHeader(@Nullable Crc32cLengthKnown crc32c, HttpHeaders headers) { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/FakeHttpServer.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/FakeHttpServer.java index cff9dc469..294a04536 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/FakeHttpServer.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/FakeHttpServer.java @@ -20,6 +20,9 @@ import static io.grpc.netty.shaded.io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH; import static io.grpc.netty.shaded.io.netty.handler.codec.http.HttpHeaderValues.CLOSE; +import com.google.api.gax.retrying.RetrySettings; +import com.google.cloud.NoCredentials; +import com.google.cloud.storage.it.runner.registry.Registry; import io.grpc.netty.shaded.io.netty.bootstrap.ServerBootstrap; import io.grpc.netty.shaded.io.netty.buffer.ByteBuf; import io.grpc.netty.shaded.io.netty.channel.Channel; @@ -44,17 +47,25 @@ import io.grpc.netty.shaded.io.netty.handler.logging.LoggingHandler; import java.net.InetSocketAddress; import java.net.URI; +import java.time.Duration; final class FakeHttpServer implements AutoCloseable { private final URI endpoint; private final Channel channel; private final Runnable shutdown; + private final HttpStorageOptions httpStorageOptions; - private FakeHttpServer(URI endpoint, Channel channel, Runnable shutdown) { + private FakeHttpServer( + URI endpoint, Channel channel, Runnable shutdown, HttpStorageOptions httpStorageOptions) { this.endpoint = endpoint; this.channel = channel; this.shutdown = shutdown; + this.httpStorageOptions = httpStorageOptions; + } + + public HttpStorageOptions getHttpStorageOptions() { + return httpStorageOptions; } public URI getEndpoint() { @@ -99,13 +110,34 @@ protected void initChannel(SocketChannel ch) { Channel channel = b.bind(address).syncUninterruptibly().channel(); InetSocketAddress socketAddress = (InetSocketAddress) channel.localAddress(); + URI endpoint = URI.create("http://localhost:" + socketAddress.getPort() + "/"); + HttpStorageOptions httpStorageOptions = + HttpStorageOptions.http() + .setHost(endpoint.toString()) + .setProjectId("test-proj") + .setCredentials(NoCredentials.getInstance()) + .setOpenTelemetry(Registry.getInstance().otelSdk.get().get()) + // cut most retry settings by half. we're hitting an in process server. + .setRetrySettings( + RetrySettings.newBuilder() + .setTotalTimeoutDuration(Duration.ofSeconds(25)) + .setInitialRetryDelayDuration(Duration.ofMillis(250)) + .setRetryDelayMultiplier(1.2) + .setMaxRetryDelayDuration(Duration.ofSeconds(16)) + .setMaxAttempts(6) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(25)) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(25)) + .build()) + .build(); return new FakeHttpServer( - URI.create("http://localhost:" + socketAddress.getPort()), + endpoint, channel, () -> { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); - }); + }, + httpStorageOptions); } interface HttpRequestHandler { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/ITMultipartUploadHttpRequestManagerTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/ITMultipartUploadHttpRequestManagerTest.java index 0b7acdbd4..bc0b29a17 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/ITMultipartUploadHttpRequestManagerTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/ITMultipartUploadHttpRequestManagerTest.java @@ -24,7 +24,6 @@ import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.google.api.client.http.HttpResponseException; -import com.google.cloud.NoCredentials; import com.google.cloud.storage.FakeHttpServer.HttpRequestHandler; import com.google.cloud.storage.it.runner.StorageITRunner; import com.google.cloud.storage.it.runner.annotations.Backend; @@ -53,13 +52,11 @@ import io.grpc.netty.shaded.io.netty.handler.codec.http.FullHttpRequest; import io.grpc.netty.shaded.io.netty.handler.codec.http.FullHttpResponse; import io.grpc.netty.shaded.io.netty.handler.codec.http.HttpResponseStatus; -import java.net.URI; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.Collections; -import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -76,20 +73,8 @@ public final class ITMultipartUploadHttpRequestManagerTest { xmlMapper.registerModule(new JavaTimeModule()); } - private MultipartUploadHttpRequestManager multipartUploadHttpRequestManager; @Rule public final TemporaryFolder temp = new TemporaryFolder(); - @Before - public void setUp() throws Exception { - HttpStorageOptions httpStorageOptions = - HttpStorageOptions.newBuilder() - .setProjectId("test-project") - .setCredentials(NoCredentials.getInstance()) - .build(); - multipartUploadHttpRequestManager = - MultipartUploadHttpRequestManager.createFrom(httpStorageOptions); - } - @Test public void sendCreateMultipartUploadRequest_success() throws Exception { HttpRequestHandler handler = @@ -109,7 +94,8 @@ public void sendCreateMultipartUploadRequest_success() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -118,7 +104,7 @@ public void sendCreateMultipartUploadRequest_success() throws Exception { .build(); CreateMultipartUploadResponse response = - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); assertThat(response).isNotNull(); assertThat(response.bucket()).isEqualTo("test-bucket"); @@ -138,7 +124,8 @@ public void sendCreateMultipartUploadRequest_error() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -148,9 +135,7 @@ public void sendCreateMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest( - endpoint, request)); + () -> multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request)); } } @@ -174,7 +159,8 @@ public void sendCreateMultipartUploadRequest_withCannedAcl() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -183,7 +169,7 @@ public void sendCreateMultipartUploadRequest_withCannedAcl() throws Exception { .cannedAcl(Storage.PredefinedAcl.AUTHENTICATED_READ) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -208,7 +194,8 @@ public void sendCreateMultipartUploadRequest_withMetadata() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -217,7 +204,7 @@ public void sendCreateMultipartUploadRequest_withMetadata() throws Exception { .metadata(ImmutableMap.of("key1", "value1", "key2", "value2")) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -241,7 +228,8 @@ public void sendCreateMultipartUploadRequest_withStorageClass() throws Exception }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -250,7 +238,7 @@ public void sendCreateMultipartUploadRequest_withStorageClass() throws Exception .storageClass(StorageClass.ARCHIVE) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -275,7 +263,8 @@ public void sendCreateMultipartUploadRequest_withKmsKeyName() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -284,7 +273,7 @@ public void sendCreateMultipartUploadRequest_withKmsKeyName() throws Exception { .kmsKeyName("projects/p/locations/l/keyRings/r/cryptoKeys/k") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -308,7 +297,8 @@ public void sendCreateMultipartUploadRequest_withObjectLockMode() throws Excepti }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -317,7 +307,7 @@ public void sendCreateMultipartUploadRequest_withObjectLockMode() throws Excepti .objectLockMode(ObjectLockMode.GOVERNANCE) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -345,7 +335,8 @@ public void sendCreateMultipartUploadRequest_withObjectLockRetainUntilDate() thr }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -354,7 +345,7 @@ public void sendCreateMultipartUploadRequest_withObjectLockRetainUntilDate() thr .objectLockRetainUntilDate(retainUtil) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -381,7 +372,8 @@ public void sendCreateMultipartUploadRequest_withCustomTime() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder() .bucket("test-bucket") @@ -390,7 +382,7 @@ public void sendCreateMultipartUploadRequest_withCustomTime() throws Exception { .customTime(customTime) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -426,7 +418,8 @@ public void sendListPartsRequest_success() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); ListPartsRequest request = ListPartsRequest.builder() .bucket("test-bucket") @@ -436,8 +429,7 @@ public void sendListPartsRequest_success() throws Exception { .partNumberMarker(0) .build(); - ListPartsResponse response = - multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request); + ListPartsResponse response = multipartUploadHttpRequestManager.sendListPartsRequest(request); assertThat(response).isNotNull(); assertThat(response.getBucket()).isEqualTo("test-bucket"); @@ -467,7 +459,8 @@ public void sendListPartsRequest_bucketNotFound() throws Exception { Unpooled.wrappedBuffer("Bucket not found".getBytes(StandardCharsets.UTF_8))); try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); ListPartsRequest request = ListPartsRequest.builder() .bucket("test-bucket") @@ -477,7 +470,7 @@ public void sendListPartsRequest_bucketNotFound() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -491,7 +484,8 @@ public void sendListPartsRequest_keyNotFound() throws Exception { Unpooled.wrappedBuffer("Key not found".getBytes(StandardCharsets.UTF_8))); try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); ListPartsRequest request = ListPartsRequest.builder() .bucket("test-bucket") @@ -501,7 +495,7 @@ public void sendListPartsRequest_keyNotFound() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -515,7 +509,8 @@ public void sendListPartsRequest_badRequest() throws Exception { Unpooled.wrappedBuffer("Invalid uploadId".getBytes(StandardCharsets.UTF_8))); try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); ListPartsRequest request = ListPartsRequest.builder() .bucket("test-bucket") @@ -525,7 +520,7 @@ public void sendListPartsRequest_badRequest() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -540,7 +535,8 @@ public void sendListPartsRequest_errorResponse() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); ListPartsRequest request = ListPartsRequest.builder() .bucket("test-bucket") @@ -550,7 +546,7 @@ public void sendListPartsRequest_errorResponse() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -569,7 +565,8 @@ public void sendAbortMultipartUploadRequest_success() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); AbortMultipartUploadRequest request = AbortMultipartUploadRequest.builder() .bucket("test-bucket") @@ -578,7 +575,7 @@ public void sendAbortMultipartUploadRequest_success() throws Exception { .build(); AbortMultipartUploadResponse response = - multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(request); assertThat(response).isNotNull(); } @@ -595,7 +592,8 @@ public void sendAbortMultipartUploadRequest_error() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); AbortMultipartUploadRequest request = AbortMultipartUploadRequest.builder() .bucket("test-bucket") @@ -605,8 +603,7 @@ public void sendAbortMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(request)); } } @@ -629,7 +626,8 @@ public void sendCompleteMultipartUploadRequest_success() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CompleteMultipartUploadRequest request = CompleteMultipartUploadRequest.builder() .bucket("test-bucket") @@ -645,7 +643,7 @@ public void sendCompleteMultipartUploadRequest_success() throws Exception { .build(); CompleteMultipartUploadResponse response = - multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(request); assertThat(response).isNotNull(); assertThat(response.bucket()).isEqualTo("test-bucket"); @@ -665,7 +663,8 @@ public void sendCompleteMultipartUploadRequest_error() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CompleteMultipartUploadRequest request = CompleteMultipartUploadRequest.builder() .bucket("test-bucket") @@ -682,9 +681,7 @@ public void sendCompleteMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest( - endpoint, request)); + () -> multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(request)); } } @@ -713,7 +710,8 @@ public void sendCompleteMultipartUploadRequest_body() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); CompleteMultipartUploadRequest request = CompleteMultipartUploadRequest.builder() .bucket("test-bucket") @@ -728,7 +726,7 @@ public void sendCompleteMultipartUploadRequest_body() throws Exception { .build()) .build(); - multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(request); } } @@ -753,7 +751,8 @@ public void sendUploadPartRequest_success() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); UploadPartRequest request = UploadPartRequest.builder() .bucket("test-bucket") @@ -764,7 +763,7 @@ public void sendUploadPartRequest_success() throws Exception { UploadPartResponse response = multipartUploadHttpRequestManager.sendUploadPartRequest( - endpoint, request, RewindableContent.of(ByteBuffer.wrap(contentBytes))); + request, RewindableContent.of(ByteBuffer.wrap(contentBytes))); assertThat(response).isNotNull(); assertThat(response.eTag()).isEqualTo(etag); @@ -795,7 +794,8 @@ public void sendUploadPartRequest_withChecksums() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); UploadPartRequest request = UploadPartRequest.builder() .bucket("test-bucket") @@ -806,7 +806,7 @@ public void sendUploadPartRequest_withChecksums() throws Exception { UploadPartResponse response = multipartUploadHttpRequestManager.sendUploadPartRequest( - endpoint, request, RewindableContent.of(ByteBuffer.wrap(contentBytes))); + request, RewindableContent.of(ByteBuffer.wrap(contentBytes))); assertThat(response).isNotNull(); assertThat(response.eTag()).isEqualTo(etag); @@ -824,7 +824,8 @@ public void sendUploadPartRequest_error() throws Exception { }; try (FakeHttpServer fakeHttpServer = FakeHttpServer.of(handler)) { - URI endpoint = URI.create(fakeHttpServer.getEndpoint() + "/"); + MultipartUploadHttpRequestManager multipartUploadHttpRequestManager = + MultipartUploadHttpRequestManager.createFrom(fakeHttpServer.getHttpStorageOptions()); UploadPartRequest request = UploadPartRequest.builder() .bucket("test-bucket") @@ -837,7 +838,7 @@ public void sendUploadPartRequest_error() throws Exception { HttpResponseException.class, () -> multipartUploadHttpRequestManager.sendUploadPartRequest( - endpoint, request, RewindableContent.empty())); + request, RewindableContent.empty())); } } }