Skip to content

Commit

Permalink
Added versionId to getObjectMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
formkiqMike committed Jan 31, 2023
1 parent c6ab993 commit 9eb8b94
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 48 deletions.
8 changes: 6 additions & 2 deletions aws-s3/src/main/java/com/formkiq/aws/s3/S3Service.java
Original file line number Diff line number Diff line change
Expand Up @@ -304,11 +304,15 @@ public GetBucketNotificationConfigurationResponse getNotifications(final String
*
* @param bucket {@link String}
* @param key {@link String}
* @param versionId {@link String}
*
* @return {@link S3ObjectMetadata}
*/
public S3ObjectMetadata getObjectMetadata(final String bucket, final String key) {
HeadObjectRequest hr = HeadObjectRequest.builder().bucket(bucket).key(key).build();
public S3ObjectMetadata getObjectMetadata(final String bucket, final String key,
final String versionId) {

HeadObjectRequest hr =
HeadObjectRequest.builder().bucket(bucket).key(key).versionId(versionId).build();
S3ObjectMetadata md = new S3ObjectMetadata();

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,29 +204,31 @@ public void testHandleRequest01() throws Exception {


assertEquals("font/woff2",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/font.woff2").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/font.woff2", null).getContentType());

assertEquals("text/css", s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.css").getContentType());
assertEquals("text/css",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.css", null).getContentType());

assertEquals("application/vnd.ms-fontobject",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.eot").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.eot", null).getContentType());

assertEquals("image/x-icon",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ico").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ico", null).getContentType());

assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.js").getContentType()
assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.js", null).getContentType()
.endsWith("/javascript"));

assertEquals("image/svg+xml",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.svg").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.svg", null).getContentType());

assertEquals("font/ttf", s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ttf").getContentType());
assertEquals("font/ttf",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ttf", null).getContentType());

assertEquals("text/plain",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.txt").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.txt", null).getContentType());

assertEquals("font/woff",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.woff").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.woff", null).getContentType());

// given
input = createInput("Delete");
Expand Down Expand Up @@ -271,39 +273,41 @@ public void testHandleRequest02() throws Exception {
assertTrue(connection.contains("\"Data\":{\"Message\":\"Request Update was successful!\""));

assertEquals("font/woff2",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/font.woff2").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/font.woff2", null).getContentType());

assertEquals("text/css", s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.css").getContentType());
assertEquals("text/css",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.css", null).getContentType());

assertEquals("application/vnd.ms-fontobject",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.eot").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.eot", null).getContentType());

assertEquals("image/x-icon",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ico").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ico", null).getContentType());

assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.js").getContentType()
assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.js", null).getContentType()
.endsWith("/javascript"));

assertEquals("image/svg+xml",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.svg").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.svg", null).getContentType());

assertEquals("font/ttf", s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ttf").getContentType());
assertEquals("font/ttf",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.ttf", null).getContentType());

assertEquals("text/plain",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.txt").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.txt", null).getContentType());

assertEquals("font/woff",
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.woff").getContentType());
s3.getObjectMetadata(CONSOLE_BUCKET, "0.1/test.woff", null).getContentType());
}

private void verifyCognitoConfig() {
assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET,
"formkiq/cognito/dev/CustomMessage_AdminCreateUser/Message").isObjectExists());
assertTrue(
s3.getObjectMetadata(CONSOLE_BUCKET, "formkiq/cognito/dev/CustomMessage_SignUp/Message")
.isObjectExists());
"formkiq/cognito/dev/CustomMessage_AdminCreateUser/Message", null).isObjectExists());
assertTrue(s3
.getObjectMetadata(CONSOLE_BUCKET, "formkiq/cognito/dev/CustomMessage_SignUp/Message", null)
.isObjectExists());
assertTrue(s3.getObjectMetadata(CONSOLE_BUCKET,
"formkiq/cognito/dev/CustomMessage_ForgotPassword/Message").isObjectExists());
"formkiq/cognito/dev/CustomMessage_ForgotPassword/Message", null).isObjectExists());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ public void testS3Buckets() {
final String consoleBucket =
ssmService.getParameterValue("/formkiq/" + appenvironment + "/s3/Console");

S3ObjectMetadata resp = s3.getObjectMetadata(consoleBucket, version + "/index.html");
S3ObjectMetadata resp = s3.getObjectMetadata(consoleBucket, version + "/index.html", null);
assertTrue(resp.isObjectExists());

assertTrue(s3.exists(consoleBucket));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public ApiRequestHandlerResponse delete(final LambdaLogger logger,
S3Service s3Service = awsservice.getExtension(S3Service.class);

String s3Key = SiteIdKeyGenerator.createS3Key(siteId, documentId);
S3ObjectMetadata md = s3Service.getObjectMetadata(documentBucket, s3Key);
S3ObjectMetadata md = s3Service.getObjectMetadata(documentBucket, s3Key, null);

if (md.isObjectExists()) {
s3Service.deleteObject(documentBucket, s3Key, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public void testHandleDeleteDocument01() throws Exception {
assertEquals("200.0", String.valueOf(m.get("statusCode")));
assertEquals(getHeaders(), "\"headers\":" + GsonUtil.getInstance().toJson(m.get("headers")));

assertFalse(getS3().getObjectMetadata(BUCKET_NAME, s3Key).isObjectExists());
assertFalse(getS3().getObjectMetadata(BUCKET_NAME, s3Key, null).isObjectExists());
}
}

Expand Down Expand Up @@ -872,7 +872,7 @@ public void testHandlePostDocuments02() throws Exception {

assertNotNull(UUID.fromString(resp.getString("documentId")));

assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key).isObjectExists());
assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key, null).isObjectExists());
String content = getS3().getContentAsString(STAGE_BUCKET_NAME, key, null);
DynamicObject obj = new DynamicObject(fromJson(content, Map.class));
assertTrue(obj.hasString("documentId"));
Expand Down Expand Up @@ -1044,7 +1044,7 @@ public void testHandlePostDocuments08() throws Exception {

assertNotNull(UUID.fromString(resp.getString("documentId")));

assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key).isObjectExists());
assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key, null).isObjectExists());
}

/**
Expand Down Expand Up @@ -1209,7 +1209,7 @@ public void testHandlePostDocuments12() throws Exception {
assertEquals("application/octet-stream", verifyS3.getString("contentType"));

assertEquals("application/octet-stream",
getS3().getObjectMetadata(STAGE_BUCKET_NAME, key).getContentType());
getS3().getObjectMetadata(STAGE_BUCKET_NAME, key, null).getContentType());
}
}

Expand Down Expand Up @@ -1416,7 +1416,7 @@ public void testHandlePostDocuments17() throws Exception {
@SuppressWarnings("unchecked")
private DynamicObject verifyS3(final String key, final boolean hasContent, final String userId)
throws Exception {
assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key).isObjectExists());
assertTrue(getS3().getObjectMetadata(STAGE_BUCKET_NAME, key, null).isObjectExists());
String content = getS3().getContentAsString(STAGE_BUCKET_NAME, key, null);
DynamicObject obj = new DynamicObject(fromJson(content, Map.class));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ public void testPostWebhooks13() throws Exception {
verifyHeaders(m, "200.0");

String s3key = createDatabaseKey(siteId, documentId + FORMKIQ_DOC_EXT);
S3ObjectMetadata om = getS3().getObjectMetadata(STAGE_BUCKET_NAME, s3key);
S3ObjectMetadata om = getS3().getObjectMetadata(STAGE_BUCKET_NAME, s3key, null);
assertFalse(om.isObjectExists());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ private void processS3File(final LambdaLogger logger, final boolean create, fina
String siteId = getSiteId(key);
String documentId = resetDatabaseKey(siteId, key);

S3ObjectMetadata resp = this.s3service.getObjectMetadata(s3bucket, key);
S3ObjectMetadata resp = this.s3service.getObjectMetadata(s3bucket, key, null);

if (!resp.isObjectExists()) {
throw new FileNotFoundException("Object " + documentId + " not found in bucket " + s3bucket);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ private DynamicDocumentItem loadDocument(final LambdaLogger logger, final String

if (isEmpty(doc.getUserId())) {

S3ObjectMetadata metadata = this.s3.getObjectMetadata(bucket, s3Key);
S3ObjectMetadata metadata = this.s3.getObjectMetadata(bucket, s3Key, null);
String username = metadata.getMetadata().entrySet().stream()
.filter(s -> s.getKey().equalsIgnoreCase("userid")).findFirst().map(s -> s.getValue())
.orElse("System");
Expand Down Expand Up @@ -586,7 +586,7 @@ private void writeS3Document(final LambdaLogger logger, final String bucket, fin

} else {

S3ObjectMetadata metadata = this.s3.getObjectMetadata(bucket, s3Key);
S3ObjectMetadata metadata = this.s3.getObjectMetadata(bucket, s3Key, null);

String destKey = createDatabaseKey(siteId, item.getDocumentId());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ private void processFkB64File(final String siteId, final DynamicDocumentItem doc
assertTrue(this.logger.containsString("Inserted " + docitem.getPath()
+ " into bucket documentsbucket as " + createDatabaseKey(siteId, destDocumentId)));

assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId, null).isObjectExists());

DocumentItem item = service.findDocument(siteId, destDocumentId);

Expand Down Expand Up @@ -594,7 +594,7 @@ private void testCopyFile(final String siteId, final String path, final String e
+ createDatabaseKey(siteId, destDocumentId) + " in bucket " + DOCUMENTS_BUCKET + "."));
assertTrue(this.logger.containsString("Removing " + key + " from bucket example-bucket."));

assertFalse(s3.getObjectMetadata(STAGING_BUCKET, path).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, path, null).isObjectExists());

DocumentItem item = service.findDocument(siteId, destDocumentId);
assertNotNull(item);
Expand Down Expand Up @@ -777,7 +777,7 @@ public void testFkB64Extension05() throws IOException {
assertEquals(documentId0, tags.get(1).getValue());

String k = createDatabaseKey(siteId, i.getDocumentId());
assertFalse(s3.getObjectMetadata(DOCUMENTS_BUCKET, k).isObjectExists());
assertFalse(s3.getObjectMetadata(DOCUMENTS_BUCKET, k, null).isObjectExists());

i = service.findDocument(siteId, documentId1, true, null, MAX_RESULTS).getResult();
assertEquals("application/json", i.getContentType());
Expand All @@ -788,7 +788,8 @@ public void testFkB64Extension05() throws IOException {
assertEquals("", tags.get(0).getValue());

k = createDatabaseKey(siteId, i.getDocumentId());
assertEquals("application/json", s3.getObjectMetadata(DOCUMENTS_BUCKET, k).getContentType());
assertEquals("application/json",
s3.getObjectMetadata(DOCUMENTS_BUCKET, k, null).getContentType());

i = service.findDocument(siteId, documentId2);
assertEquals(documentId0, i.getBelongsToDocumentId());
Expand All @@ -801,7 +802,7 @@ public void testFkB64Extension05() throws IOException {
assertEquals("", tags.get(1).getValue());

k = createDatabaseKey(siteId, i.getDocumentId());
assertFalse(s3.getObjectMetadata(DOCUMENTS_BUCKET, k).isObjectExists());
assertFalse(s3.getObjectMetadata(DOCUMENTS_BUCKET, k, null).isObjectExists());
}
}

Expand Down Expand Up @@ -873,7 +874,7 @@ public void testFkB64Extension07() throws IOException {
assertEquals(documentId, UUID.fromString(documentId).toString());
assertTrue(this.logger.containsString("Removing " + key + " from bucket example-bucket."));

assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId, null).isObjectExists());

DocumentItem item = service.findDocument(siteId, documentId);
// assertEquals("14", item.getContentLength().toString());
Expand Down Expand Up @@ -940,7 +941,7 @@ public void testFkB64Extension08() throws IOException {
assertEquals(documentId, UUID.fromString(documentId).toString());
assertTrue(this.logger.containsString("Removing " + key + " from bucket example-bucket."));

assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId, null).isObjectExists());

DocumentItem item = service.findDocument(siteId, documentId);
assertNull(item.getContentLength());
Expand Down Expand Up @@ -1001,7 +1002,7 @@ public void testFkB64Extension09() throws IOException {
handleRequest(map);

// then
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId, null).isObjectExists());

DocumentItem item = service.findDocument(siteId, documentId);
assertNull(item.getContentLength());
Expand Down Expand Up @@ -1069,7 +1070,7 @@ public void testFkB64Extension10() throws IOException {
handleRequest(map);

// then
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId).isObjectExists());
assertFalse(s3.getObjectMetadata(STAGING_BUCKET, documentId, null).isObjectExists());

List<Action> actions = actionsService.getActions(siteId, documentId);
assertEquals(2, actions.size());
Expand Down Expand Up @@ -1375,7 +1376,7 @@ private void verifyBelongsToDocument(final DocumentItem item, final String docum

private void verifyS3Metadata(final String siteId, final DocumentItem item) {
String key = createDatabaseKey(siteId, item.getDocumentId());
S3ObjectMetadata objectMetadata = s3.getObjectMetadata(DOCUMENTS_BUCKET, key);
S3ObjectMetadata objectMetadata = s3.getObjectMetadata(DOCUMENTS_BUCKET, key, null);
assertTrue(objectMetadata.isObjectExists());

assertNotNull(objectMetadata.getMetadata().get("checksum"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ protected void verifyFileExistsInDocumentsS3(final String key, final String cont
throws InterruptedException {

while (true) {
S3ObjectMetadata meta = getS3Service().getObjectMetadata(getDocumentsbucketname(), key);
S3ObjectMetadata meta = getS3Service().getObjectMetadata(getDocumentsbucketname(), key, null);
if (meta.isObjectExists()) {
assertEquals(contentType, meta.getContentType());
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ public void testUpdateStagingFile01() throws Exception {
private void verifyFileNotExistInStagingS3(final String key) throws InterruptedException {
while (true) {
S3ObjectMetadata meta =
getS3Service().getObjectMetadata(getStagingdocumentsbucketname(), key);
getS3Service().getObjectMetadata(getStagingdocumentsbucketname(), key, null);

if (!meta.isObjectExists()) {
assertFalse(meta.isObjectExists());
Expand Down

0 comments on commit 9eb8b94

Please sign in to comment.