Skip to content

Commit 11b0bcb

Browse files
committed
multipart with no-length
1 parent 3bc6cdf commit 11b0bcb

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/UploadStreamingRegressionTesting.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import static software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils.crc32;
2424
import static software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils.makeAsyncClient;
2525
import static software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils.makeSyncClient;
26+
import static software.amazon.awssdk.services.s3.regression.S3ClientFlavor.MULTIPART_ENABLED;
27+
import static software.amazon.awssdk.services.s3.regression.S3ClientFlavor.STANDARD_ASYNC;
2628
import static software.amazon.awssdk.services.s3.regression.TestConfig.testConfigs;
2729

2830
import io.reactivex.Flowable;
@@ -124,15 +126,15 @@ void putObject(UploadConfig config) throws Exception {
124126

125127
// For testing purposes, ContentProvider is Publisher<ByteBuffer> for async clients
126128
// There is no way to create AsyncRequestBody with a Publisher<ByteBuffer> and also provide the content length
129+
S3ClientFlavor flavor = config.getBaseConfig().getFlavor();
127130
Assumptions.assumeFalse(config.getBodyType() == BodyType.CONTENT_PROVIDER_WITH_LENGTH
128-
&& config.getBaseConfig().getFlavor().isAsync(),
131+
&& flavor.isAsync(),
129132
"No way to create AsyncRequestBody by giving both an Publisher and the content length");
130133

131134
// Payload signing doesn't work correctly for async java based
132135
// TODO(sra-identity-auth) remove when chunked encoding support is added in async code path
133136
Assumptions.assumeFalse(
134-
(config.getBaseConfig().getFlavor() == S3ClientFlavor.STANDARD_ASYNC ||
135-
config.getBaseConfig().getFlavor() == S3ClientFlavor.MULTIPART_ENABLED)
137+
(flavor == STANDARD_ASYNC || flavor == MULTIPART_ENABLED)
136138
&& (config.payloadSigning()
137139
// MRAP requires body signing
138140
|| config.getBaseConfig().getBucketType() == BucketType.MRAP),
@@ -141,8 +143,7 @@ void putObject(UploadConfig config) throws Exception {
141143
// For testing purposes, ContentProvider is Publisher<ByteBuffer> for async clients
142144
// Async java based clients don't currently support unknown content-length bodies
143145
Assumptions.assumeFalse(
144-
(config.getBaseConfig().getFlavor() == S3ClientFlavor.STANDARD_ASYNC ||
145-
config.getBaseConfig().getFlavor() == S3ClientFlavor.MULTIPART_ENABLED)
146+
flavor == STANDARD_ASYNC
146147
&& config.getBodyType() == BodyType.CONTENT_PROVIDER_NO_LENGTH,
147148
"Async Java based support unknown content length");
148149

@@ -176,13 +177,13 @@ void putObject(UploadConfig config) throws Exception {
176177
boolean requestBodyHasContentLength = false;
177178
String actualCrc32;
178179

179-
if (!config.getBaseConfig().getFlavor().isAsync()) {
180+
if (!flavor.isAsync()) {
180181
TestRequestBody body = getRequestBody(config.getBodyType(), config.getContentSize());
181182
callable = callPutObject(request, body, config.getBaseConfig(), overrideConfiguration.build());
182183
actualContentLength = body.getActualContentLength();
183184
requestBodyHasContentLength = body.optionalContentLength().isPresent();
184185
actualCrc32 = body.getChecksum();
185-
} else if (config.getBaseConfig().getFlavor() == S3ClientFlavor.MULTIPART_ENABLED) {
186+
} else if (flavor == MULTIPART_ENABLED) {
186187
TestAsyncBody body = getAsyncRequestBody(config.getBodyType(), config.contentSize);
187188
callable = callTmUpload(request, body, config.getBaseConfig(), overrideConfiguration.build());
188189
actualContentLength = body.getActualContentLength();
@@ -201,19 +202,19 @@ void putObject(UploadConfig config) throws Exception {
201202
recordObjectToCleanup(bucketType, key);
202203

203204
// mpu not supported
204-
if (config.getBaseConfig().getFlavor() == S3ClientFlavor.MULTIPART_ENABLED) {
205+
if (flavor == MULTIPART_ENABLED) {
205206
return;
206207
}
207208

208209
// We only validate when configured to WHEN_SUPPORTED since checksums are optional for PutObject
209210
if (config.getBaseConfig().getRequestChecksumValidation() == RequestChecksumCalculation.WHEN_SUPPORTED
210211
// CRT switches to MPU under the hood which doesn't support checksums
211-
&& config.getBaseConfig().getFlavor() != S3ClientFlavor.CRT_BASED) {
212+
&& flavor != S3ClientFlavor.CRT_BASED) {
212213
assertThat(response.checksumCRC32()).isEqualTo(actualCrc32);
213214
}
214215

215216
// We can't set an execution interceptor when using CRT
216-
if (config.getBaseConfig().getFlavor() == S3ClientFlavor.CRT_BASED) {
217+
if (flavor == S3ClientFlavor.CRT_BASED) {
217218
return;
218219
}
219220

0 commit comments

Comments
 (0)