Skip to content

Commit 504dc9d

Browse files
enhancement: presigned-url validity getter
1 parent 87faeee commit 504dc9d

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

aws/spring-cloud-aws-s3/src/main/java/io/reflectoring/configuration/AwsS3BucketProperties.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.reflectoring.configuration;
22

3+
import java.time.Duration;
4+
35
import org.springframework.boot.context.properties.ConfigurationProperties;
46
import org.springframework.validation.annotation.Validated;
57

@@ -58,4 +60,9 @@ public class PresignedUrl {
5860

5961
}
6062

63+
public Duration getPresignedUrlValidity() {
64+
var urlValidity = this.presignedUrl.validity;
65+
return Duration.ofSeconds(urlValidity);
66+
}
67+
6168
}
Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.reflectoring.service;
22

33
import java.net.URL;
4-
import java.time.Duration;
54

65
import org.springframework.boot.context.properties.EnableConfigurationProperties;
76
import org.springframework.stereotype.Service;
@@ -18,42 +17,40 @@
1817
@RequiredArgsConstructor
1918
@EnableConfigurationProperties(AwsS3BucketProperties.class)
2019
public class StorageService {
21-
20+
2221
private final S3Template s3Template;
2322
private final AwsS3BucketProperties awsS3BucketProperties;
24-
23+
2524
@SneakyThrows
2625
public void save(@NonNull final MultipartFile file) {
2726
final var key = file.getOriginalFilename();
2827
final var bucketName = awsS3BucketProperties.getBucketName();
2928

3029
s3Template.upload(bucketName, key, file.getInputStream());
3130
}
32-
31+
3332
public S3Resource retrieve(@NonNull final String objectKey) {
3433
final var bucketName = awsS3BucketProperties.getBucketName();
3534
return s3Template.download(bucketName, objectKey);
3635
}
37-
36+
3837
public void delete(@NonNull final String objectKey) {
3938
final var bucketName = awsS3BucketProperties.getBucketName();
4039
s3Template.deleteObject(bucketName, objectKey);
4140
}
42-
41+
4342
public URL generateViewablePresignedUrl(@NonNull final String objectKey) {
4443
final var bucketName = awsS3BucketProperties.getBucketName();
45-
final var urlValidity = awsS3BucketProperties.getPresignedUrl().getValidity();
46-
final var urlValidityDuration = Duration.ofSeconds(urlValidity);
47-
48-
return s3Template.createSignedGetURL(bucketName, objectKey, urlValidityDuration);
44+
final var urlValidity = awsS3BucketProperties.getPresignedUrlValidity();
45+
46+
return s3Template.createSignedGetURL(bucketName, objectKey, urlValidity);
4947
}
50-
48+
5149
public URL generateUploadablePresignedUrl(@NonNull final String objectKey) {
5250
final var bucketName = awsS3BucketProperties.getBucketName();
53-
final var urlValidity = awsS3BucketProperties.getPresignedUrl().getValidity();
54-
final var urlValidityDuration = Duration.ofSeconds(urlValidity);
51+
final var urlValidity = awsS3BucketProperties.getPresignedUrlValidity();
5552

56-
return s3Template.createSignedPutURL(bucketName, objectKey, urlValidityDuration);
53+
return s3Template.createSignedPutURL(bucketName, objectKey, urlValidity);
5754
}
58-
55+
5956
}

0 commit comments

Comments
 (0)