Skip to content

Commit b5df57e

Browse files
committed
Remove the option to pass bucket and key to DownloadRequest and UploadRequest and remove unused files
1 parent 961e069 commit b5df57e

File tree

16 files changed

+240
-294
lines changed

16 files changed

+240
-294
lines changed

services-custom/s3-transfer-manager/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@
163163
<configuration>
164164
<archive>
165165
<manifestEntries>
166-
<!-- TODO is this a good name? -->
167-
<Automatic-Module-Name>software.amazon.awssdk.custom.s3.transfer</Automatic-Module-Name>
166+
<Automatic-Module-Name>software.amazon.awssdk.transfer.s3</Automatic-Module-Name>
168167
</manifestEntries>
169168
</archive>
170169
</configuration>

services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerDownloadIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ public static void cleanup() {
5858
@Test
5959
public void download_shouldWork() throws IOException {
6060
Path path = RandomTempFile.randomUncreatedFile().toPath();
61-
Download download = transferManager.download(b -> b.bucket(BUCKET).key(KEY).destination(path));
61+
Download download = transferManager.download(b -> b.getObjectRequest(r -> r.bucket(BUCKET).key(KEY))
62+
.destination(path));
6263
CompletedDownload completedDownload = download.completionFuture().join();
6364
assertThat(Md5Utils.md5AsBase64(path.toFile())).isEqualTo(Md5Utils.md5AsBase64(file));
6465
assertThat(completedDownload.response().responseMetadata().requestId()).isNotNull();

services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,9 @@ public static void teardown() throws IOException {
6161
@Test
6262
public void upload_fileSentCorrectly() throws IOException {
6363
Upload upload = tm.upload(UploadRequest.builder()
64-
.bucket(TEST_BUCKET)
65-
.key(TEST_KEY)
66-
.source(testFile.toPath())
67-
.build());
64+
.putObjectRequest(b -> b.bucket(TEST_BUCKET).key(TEST_KEY))
65+
.source(testFile.toPath())
66+
.build());
6867

6968
upload.completionFuture().join();
7069

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/CompletedUploadDirectory.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/DownloadDirectory.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/DownloadRequest.java

Lines changed: 55 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
package software.amazon.awssdk.transfer.s3;
1717

1818
import java.nio.file.Path;
19+
import java.util.Objects;
20+
import java.util.function.Consumer;
21+
import software.amazon.awssdk.annotations.NotThreadSafe;
1922
import software.amazon.awssdk.annotations.SdkPublicApi;
2023
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
2124
import software.amazon.awssdk.utils.Validate;
@@ -31,17 +34,14 @@ public final class DownloadRequest implements TransferRequest, ToCopyableBuilder
3134
private final GetObjectRequest getObjectRequest;
3235

3336
private DownloadRequest(BuilderImpl builder) {
34-
Validate.isTrue((builder.bucket != null && builder.key != null) ^ builder.getObjectRequest != null,
35-
"Exactly one of a bucket, key pair or API request must be provided.");
3637
this.destination = Validate.paramNotNull(builder.destination, "destination");
37-
this.getObjectRequest = builder.getObjectRequest == null ? GetObjectRequest.builder()
38-
.bucket(builder.bucket)
39-
.key(builder.key)
40-
.build() : builder.getObjectRequest;
38+
this.getObjectRequest = Validate.paramNotNull(builder.getObjectRequest, "getObjectRequest");
4139
}
4240

4341
/**
44-
* @return A builder for this request.
42+
* Create a builder that can be used to create a {@link DownloadRequest}.
43+
*
44+
* @see S3TransferManager#download(DownloadRequest)
4545
*/
4646
public static Builder builder() {
4747
return new BuilderImpl();
@@ -52,16 +52,6 @@ public Builder toBuilder() {
5252
return new BuilderImpl();
5353
}
5454

55-
@Override
56-
public String bucket() {
57-
return getObjectRequest.bucket();
58-
}
59-
60-
@Override
61-
public String key() {
62-
return getObjectRequest.key();
63-
}
64-
6555
/**
6656
* The {@link Path} to file that response contents will be written to. The file must not exist or this method
6757
* will throw an exception. If the file is not writable by the current user then an exception will be thrown.
@@ -72,10 +62,42 @@ public Path destination() {
7262
return destination;
7363
}
7464

75-
public GetObjectRequest toGetObjectRequest() {
65+
/**
66+
* @return The {@link GetObjectRequest} request that should be used for the download
67+
*/
68+
public GetObjectRequest getObjectRequest() {
7669
return getObjectRequest;
7770
}
7871

72+
@Override
73+
public boolean equals(Object o) {
74+
if (this == o) {
75+
return true;
76+
}
77+
if (o == null || getClass() != o.getClass()) {
78+
return false;
79+
}
80+
81+
DownloadRequest that = (DownloadRequest) o;
82+
83+
if (!Objects.equals(destination, that.destination)) {
84+
return false;
85+
}
86+
return Objects.equals(getObjectRequest, that.getObjectRequest);
87+
}
88+
89+
@Override
90+
public int hashCode() {
91+
int result = destination != null ? destination.hashCode() : 0;
92+
result = 31 * result + (getObjectRequest != null ? getObjectRequest.hashCode() : 0);
93+
return result;
94+
}
95+
96+
/**
97+
* A builder for a {@link DownloadRequest}, created with {@link #builder()}
98+
*/
99+
@SdkPublicApi
100+
@NotThreadSafe
79101
public interface Builder extends TransferRequest.Builder<DownloadRequest, Builder>, CopyableBuilder<Builder,
80102
DownloadRequest> {
81103

@@ -96,15 +118,28 @@ public interface Builder extends TransferRequest.Builder<DownloadRequest, Builde
96118
*/
97119
Builder getObjectRequest(GetObjectRequest getObjectRequest);
98120

121+
/**
122+
* The {@link GetObjectRequest} request that should be used for the download
123+
*
124+
* @param getObjectRequestBuilder the getObject request
125+
* @return a reference to this object so that method calls can be chained together.
126+
*/
127+
default Builder getObjectRequest(Consumer<GetObjectRequest.Builder> getObjectRequestBuilder) {
128+
GetObjectRequest request = GetObjectRequest.builder()
129+
.applyMutation(getObjectRequestBuilder)
130+
.build();
131+
getObjectRequest(request);
132+
return this;
133+
}
134+
135+
99136
/**
100137
* @return The built request.
101138
*/
102139
DownloadRequest build();
103140
}
104141

105142
private static final class BuilderImpl implements Builder {
106-
private String bucket;
107-
private String key;
108143
private Path destination;
109144
private GetObjectRequest getObjectRequest;
110145

@@ -117,18 +152,6 @@ public Builder destination(Path destination) {
117152
return this;
118153
}
119154

120-
@Override
121-
public Builder bucket(String bucket) {
122-
this.bucket = bucket;
123-
return this;
124-
}
125-
126-
@Override
127-
public Builder key(String key) {
128-
this.key = key;
129-
return this;
130-
}
131-
132155
@Override
133156
public Builder getObjectRequest(GetObjectRequest getObjectRequest) {
134157
this.getObjectRequest = getObjectRequest;

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/TransferRequest.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,8 @@
2323
@SdkPublicApi
2424
public interface TransferRequest {
2525

26-
/**
27-
* The bucket name containing the object.
28-
*
29-
* @return the bucket name
30-
*/
31-
String bucket();
32-
33-
/**
34-
* The Key of the object.
35-
*
36-
* @return the key of the object
37-
*/
38-
String key();
39-
4026
interface Builder<TypeToBuildT, BuilderT extends Builder> {
4127

42-
/**
43-
* The bucket name containing the object.
44-
*
45-
* @return Returns a reference to this object so that method calls can be chained together.
46-
*/
47-
BuilderT bucket(String bucket);
48-
49-
/**
50-
* The Key of the object to transfer.
51-
*
52-
* @return Returns a reference to this object so that method calls can be chained together.
53-
*/
54-
BuilderT key(String key);
55-
5628
TypeToBuildT build();
5729
}
5830
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/UploadDirectory.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)