Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewazores committed Aug 24, 2023
1 parent 574f296 commit 3a09542
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
17 changes: 16 additions & 1 deletion src/main/java/io/cryostat/recordings/RecordingHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -459,9 +459,24 @@ public String saveRecording(Target target, ActiveRecording activeRecording, Inst
return filename;
}

public String archivedRecordingKey(String jvmId, String filename) {
return (jvmId + "/" + filename).strip();
}

public String archivedRecordingKey(Pair<String, String> pair) {
return archivedRecordingKey(pair.getKey(), pair.getValue());
}

public String encodedKey(String jvmId, String filename) {
return base64Url.encodeAsString(
(jvmId + "/" + filename.strip()).getBytes(StandardCharsets.UTF_8));
(archivedRecordingKey(jvmId, filename)).getBytes(StandardCharsets.UTF_8));
}

// TODO refactor this and encapsulate archived recording keys as a record with override toString
public Pair<String, String> decodedKey(String encodedKey) {
String key = new String(base64Url.decode(encodedKey), StandardCharsets.UTF_8);
String[] parts = key.split("/");
return Pair.of(parts[0], parts[1]);
}

public InputStream getActiveInputStream(ActiveRecording recording) throws Exception {
Expand Down
15 changes: 9 additions & 6 deletions src/main/java/io/cryostat/recordings/Recordings.java
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ public void agentDelete(
storage.deleteObject(
DeleteObjectRequest.builder()
.bucket(archiveBucket)
.key(String.format("%s/%s", jvmId, filename))
.key(recordingHelper.archivedRecordingKey(jvmId, filename))
.build());
}

Expand All @@ -319,7 +319,7 @@ Map<String, Object> doUpload(FileUpload recording, Metadata metadata, String jvm
if (!filename.endsWith(".jfr")) {
filename = filename + ".jfr";
}
String key = String.format("%s/%s", jvmId, filename);
String key = recordingHelper.archivedRecordingKey(jvmId, filename);
storage.putObject(
PutObjectRequest.builder()
.bucket(archiveBucket)
Expand Down Expand Up @@ -747,10 +747,13 @@ public Response createAndRedirectPresignedDownload(@RestPath long id) throws Exc
@RolesAllowed("read")
public Response redirectPresignedDownload(@RestPath String encodedKey)
throws URISyntaxException {
String key = new String(base64Url.decode(encodedKey), StandardCharsets.UTF_8);
logger.infov("Handling presigned download request for {0}", key);
Pair<String, String> pair = recordingHelper.decodedKey(encodedKey);
logger.infov("Handling presigned download request for {0}", pair);
GetObjectRequest getRequest =
GetObjectRequest.builder().bucket(archiveBucket).key(key).build();
GetObjectRequest.builder()
.bucket(archiveBucket)
.key(recordingHelper.archivedRecordingKey(pair))
.build();
GetObjectPresignRequest presignRequest =
GetObjectPresignRequest.builder()
.signatureDuration(Duration.ofMinutes(1))
Expand Down Expand Up @@ -804,7 +807,7 @@ private Metadata getArchivedRecordingMetadata(String jvmId, String filename) {
storage.getObjectTagging(
GetObjectTaggingRequest.builder()
.bucket(archiveBucket)
.key(String.format("%s/%s", jvmId, filename))
.key(recordingHelper.archivedRecordingKey(jvmId, filename))
.build())
.tagSet());
}
Expand Down

0 comments on commit 3a09542

Please sign in to comment.