Skip to content

Commit d1b1728

Browse files
Merge pull request #14 from dynamiatools/7.x
fix s3 presigned url
2 parents 45955bd + cc453c7 commit d1b1728

File tree

6 files changed

+31
-10
lines changed

6 files changed

+31
-10
lines changed

sources/core/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
<parent>
2323
<artifactId>tools.dynamia.modules.entityfiles.parent</artifactId>
2424
<groupId>tools.dynamia.modules</groupId>
25-
<version>7.2.2</version>
25+
<version>7.2.3</version>
2626
</parent>
2727
<name>Dynamia Modules - EntityFiles - Core</name>
2828
<artifactId>tools.dynamia.modules.entityfiles</artifactId>
29-
<version>7.2.2</version>
29+
<version>7.2.3</version>
3030
<url>https://www.dynamia.tools/modules/entityfiles</url>
3131

3232
<build>

sources/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<groupId>tools.dynamia.modules</groupId>
2323
<artifactId>tools.dynamia.modules.entityfiles.parent</artifactId>
2424
<packaging>pom</packaging>
25-
<version>7.2.2</version>
25+
<version>7.2.3</version>
2626
<name>Dynamia Modules - EntityFiles</name>
2727
<url>https://dynamia.tools/modules/entityfiles</url>
2828
<description>DynamiaTools extension to attach files to entities</description>

sources/s3/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
<parent>
2424
<groupId>tools.dynamia.modules</groupId>
2525
<artifactId>tools.dynamia.modules.entityfiles.parent</artifactId>
26-
<version>7.2.2</version>
26+
<version>7.2.3</version>
2727
</parent>
2828

2929
<name>Dynamia Modules - EntityFiles - S3</name>
3030
<artifactId>tools.dynamia.modules.entityfiles.s3</artifactId>
31-
<version>7.2.2</version>
31+
<version>7.2.3</version>
3232
<url>https://www.dynamia.tools/modules/entityfiles</url>
3333

3434
<build>

sources/s3/src/main/java/tools/dynamia/modules/entityfiles/s3/S3EntityFileStorage.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class S3EntityFileStorage implements EntityFileStorage {
6565
public static final String AWS_S3_REGION = "AWS_S3_REGION";
6666
public static final String AWS_S3_BUCKET = "AWS_S3_BUCKET";
6767
private static final Logger log = LoggerFactory.getLogger(S3EntityFileStorage.class);
68+
public static final int PRESIGNED_URL_TIMEOUT = 30;
6869
private final LoggingService logger = new SLF4JLoggingService(S3EntityFileStorage.class, "S3: ");
6970

7071
private final SimpleCache<String, String> URL_CACHE = new SimpleCache<>();
@@ -199,7 +200,8 @@ public StoredEntityFile download(EntityFile entityFile) {
199200
protected String generateSignedURL(String bucketName, String fileName) {
200201

201202

202-
PresignedGetObjectRequest presignedRequest = S3Utils.generatePresignedObjetRequest(bucketName, fileName, Duration.ofMinutes(30));
203+
PresignedGetObjectRequest presignedRequest = S3Utils.generatePresignedObjetRequest(bucketName, fileName, Duration.ofMinutes(PRESIGNED_URL_TIMEOUT)
204+
, getAccessKey(), getSecretKey(), getRegion());
203205
logger.info("Presigned URL: " + presignedRequest.url().toString());
204206
logger.info("HTTP method: " + presignedRequest.httpRequest().method());
205207

sources/s3/src/main/java/tools/dynamia/modules/entityfiles/s3/S3Utils.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
44
import software.amazon.awssdk.auth.credentials.AwsCredentials;
5+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
56
import software.amazon.awssdk.core.async.AsyncRequestBody;
67
import software.amazon.awssdk.regions.Region;
78
import software.amazon.awssdk.services.s3.S3AsyncClient;
@@ -35,6 +36,17 @@ public static AwsCredentials getCredentials(String accessKey, String secretKey)
3536
return AwsBasicCredentials.create(accessKey, secretKey);
3637
}
3738

39+
/**
40+
* Get credentials provider from access key and secret key
41+
*
42+
* @param accessKey the access key
43+
* @param secretKey the secret key
44+
* @return the aws credentials provider
45+
*/
46+
public static AwsCredentialsProvider credentialsProvider(String accessKey, String secretKey) {
47+
return () -> getCredentials(accessKey, secretKey);
48+
}
49+
3850
/**
3951
* Build S3AsyncClient
4052
*
@@ -89,11 +101,18 @@ public static CompletableFuture<DeleteObjectResponse> deleteFile(S3AsyncClient s
89101
* @param bucketName the bucket name
90102
* @param key the key
91103
* @param duration the duration
104+
* @param accessKey the access key
105+
* @param secretKey the secret key
106+
* @param region the region
92107
* @return the presigned URL
93108
*/
94-
public static PresignedGetObjectRequest generatePresignedObjetRequest(String bucketName, String key, Duration duration) {
109+
public static PresignedGetObjectRequest generatePresignedObjetRequest(String bucketName, String key, Duration duration,
110+
String accessKey, String secretKey, String region) {
95111

96-
try (S3Presigner presigner = S3Presigner.create()) {
112+
try (S3Presigner presigner = S3Presigner.builder()
113+
.credentialsProvider(credentialsProvider(accessKey, secretKey))
114+
.region(Region.of(region))
115+
.build()) {
97116

98117
GetObjectRequest objectRequest = GetObjectRequest.builder()
99118
.bucket(bucketName)

sources/ui/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
<parent>
2323
<artifactId>tools.dynamia.modules.entityfiles.parent</artifactId>
2424
<groupId>tools.dynamia.modules</groupId>
25-
<version>7.2.2</version>
25+
<version>7.2.3</version>
2626
</parent>
2727
<name>Dynamia Modules - EntityFiles UI</name>
2828
<artifactId>tools.dynamia.modules.entityfiles.ui</artifactId>
29-
<version>7.2.2</version>
29+
<version>7.2.3</version>
3030
<url>https://www.dynamia.tools/modules/entityfiles</url>
3131

3232
<build>

0 commit comments

Comments
 (0)