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 897f429b9..1c099ff1b 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}", @@ -194,7 +202,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/ITJsonResumableSessionPutTaskTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/ITJsonResumableSessionPutTaskTest.java index a132d1329..4855a9654 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/ITJsonResumableSessionPutTaskTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/ITJsonResumableSessionPutTaskTest.java @@ -460,7 +460,7 @@ public void scenario4() throws Exception { StorageObject call = operationResult.getObject(); assertThat(call).isNotNull(); assertThat(call.getMetadata()) - .containsEntry("upload_id", uploadUrl.substring(endpoint.toString().length())); + .containsEntry("upload_id", uploadUrl.substring(endpoint.toString().length() - 1)); assertThat(operationResult.getPersistedSize()).isEqualTo(_256KiBL); } } 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 c360e6a88..215b8acae 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.ChecksummedTestContent; import com.google.cloud.storage.it.runner.StorageITRunner; @@ -54,13 +53,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; @@ -77,20 +74,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 = @@ -110,7 +95,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") @@ -119,7 +105,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"); @@ -139,7 +125,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") @@ -149,9 +136,7 @@ public void sendCreateMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest( - endpoint, request)); + () -> multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request)); } } @@ -175,7 +160,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") @@ -184,7 +170,7 @@ public void sendCreateMultipartUploadRequest_withCannedAcl() throws Exception { .cannedAcl(Storage.PredefinedAcl.AUTHENTICATED_READ) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -209,7 +195,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") @@ -218,7 +205,7 @@ public void sendCreateMultipartUploadRequest_withMetadata() throws Exception { .metadata(ImmutableMap.of("key1", "value1", "key2", "value2")) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -242,7 +229,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") @@ -251,7 +239,7 @@ public void sendCreateMultipartUploadRequest_withStorageClass() throws Exception .storageClass(StorageClass.ARCHIVE) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -276,7 +264,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") @@ -285,7 +274,7 @@ public void sendCreateMultipartUploadRequest_withKmsKeyName() throws Exception { .kmsKeyName("projects/p/locations/l/keyRings/r/cryptoKeys/k") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -309,7 +298,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") @@ -318,7 +308,7 @@ public void sendCreateMultipartUploadRequest_withObjectLockMode() throws Excepti .objectLockMode(ObjectLockMode.GOVERNANCE) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -346,7 +336,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") @@ -355,7 +346,7 @@ public void sendCreateMultipartUploadRequest_withObjectLockRetainUntilDate() thr .objectLockRetainUntilDate(retainUtil) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -382,7 +373,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") @@ -391,7 +383,7 @@ public void sendCreateMultipartUploadRequest_withCustomTime() throws Exception { .customTime(customTime) .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -416,7 +408,8 @@ public void sendCreateMultipartUploadRequest_withContentDisposition() throws Exc }; 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") @@ -425,7 +418,7 @@ public void sendCreateMultipartUploadRequest_withContentDisposition() throws Exc .contentDisposition("attachment; filename=\"test.txt\"") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -449,7 +442,8 @@ public void sendCreateMultipartUploadRequest_withContentEncoding() throws Except }; 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") @@ -458,7 +452,7 @@ public void sendCreateMultipartUploadRequest_withContentEncoding() throws Except .contentEncoding("gzip") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -482,7 +476,8 @@ public void sendCreateMultipartUploadRequest_withContentLanguage() throws Except }; 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") @@ -491,7 +486,7 @@ public void sendCreateMultipartUploadRequest_withContentLanguage() throws Except .contentLanguage("en") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -516,7 +511,8 @@ public void sendCreateMultipartUploadRequest_withCacheControl() 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") @@ -525,7 +521,7 @@ public void sendCreateMultipartUploadRequest_withCacheControl() throws Exception .cacheControl("no-cache, no-store, max-age=0, must-revalidate") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -549,7 +545,8 @@ public void sendCreateMultipartUploadRequest_withUserProject() 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") @@ -558,7 +555,7 @@ public void sendCreateMultipartUploadRequest_withUserProject() throws Exception .userProject("test-project") .build(); - multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCreateMultipartUploadRequest(request); } } @@ -594,7 +591,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") @@ -604,8 +602,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"); @@ -635,7 +632,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") @@ -645,7 +643,7 @@ public void sendListPartsRequest_bucketNotFound() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -659,7 +657,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") @@ -669,7 +668,7 @@ public void sendListPartsRequest_keyNotFound() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -683,7 +682,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") @@ -693,7 +693,7 @@ public void sendListPartsRequest_badRequest() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -708,7 +708,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") @@ -718,7 +719,7 @@ public void sendListPartsRequest_errorResponse() throws Exception { assertThrows( HttpResponseException.class, - () -> multipartUploadHttpRequestManager.sendListPartsRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendListPartsRequest(request)); } } @@ -737,7 +738,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") @@ -746,7 +748,7 @@ public void sendAbortMultipartUploadRequest_success() throws Exception { .build(); AbortMultipartUploadResponse response = - multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(request); assertThat(response).isNotNull(); } @@ -763,7 +765,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") @@ -773,8 +776,7 @@ public void sendAbortMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(endpoint, request)); + () -> multipartUploadHttpRequestManager.sendAbortMultipartUploadRequest(request)); } } @@ -797,7 +799,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") @@ -813,7 +816,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"); @@ -833,7 +836,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") @@ -850,9 +854,7 @@ public void sendCompleteMultipartUploadRequest_error() throws Exception { assertThrows( HttpResponseException.class, - () -> - multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest( - endpoint, request)); + () -> multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(request)); } } @@ -881,7 +883,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") @@ -896,7 +899,7 @@ public void sendCompleteMultipartUploadRequest_body() throws Exception { .build()) .build(); - multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(endpoint, request); + multipartUploadHttpRequestManager.sendCompleteMultipartUploadRequest(request); } } @@ -921,7 +924,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") @@ -932,7 +936,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); @@ -963,7 +967,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") @@ -974,7 +979,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); @@ -1002,7 +1007,8 @@ public void sendUploadPartRequest_withCustomChecksum() 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") @@ -1013,7 +1019,7 @@ public void sendUploadPartRequest_withCustomChecksum() throws Exception { .build(); UploadPartResponse response = multipartUploadHttpRequestManager.sendUploadPartRequest( - endpoint, request, RewindableContent.of(content.asByteBuffer())); + request, RewindableContent.of(content.asByteBuffer())); assertThat(response).isNotNull(); assertThat(response.eTag()).isEqualTo(etag); } @@ -1030,7 +1036,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") @@ -1043,7 +1050,7 @@ public void sendUploadPartRequest_error() throws Exception { HttpResponseException.class, () -> multipartUploadHttpRequestManager.sendUploadPartRequest( - endpoint, request, RewindableContent.empty())); + request, RewindableContent.empty())); } } }