Funniest
Funniest

Reputation: 89

AWS S3 deleteMarker() retrun null

I'm using the AWS SDK for Kotlin with Spring. I set dependencies two AWS SDKs. I made remove function. That ran wrong return value. Firstly, I remove file to use deleteObject. Secondly, It checked that is removed to use deleteMarker(). deleteMarker function return type is boolean. And then delete function ran after, I checked AWS S3 for checked removing file. It was run correctly. But, It returned null.

implementation("software.amazon.awssdk:s3:2.14.0") // Amazon S3
implementation("software.amazon.awssdk:aws-sdk-java:2.14.0") // Amazon All service

fun remove(path : String): Boolean {
    val result = s3.deleteObject(              
        DeleteObjectRequest.builder().bucket(bucket.name()).key(path).build()
    )
    logger.info("remove in bucket : $path - ${result.deleteMarker()}")
    return result.deleteMarker()
}

/* error message and log */
/*
remove in bucket : 27313e6a7307240ab190d805cc5ddd72fb24458f6b96b84616babdc85a691a30 - null

java.lang.IllegalStateException: result.deleteMarker() must not be null
    at com.hanmedia.server.service.AwsService.remove(AwsService.kt:59) ~[main/:na]
*/

Upvotes: 1

Views: 591

Answers (1)

luk2302
luk2302

Reputation: 57124

A delete marker will only be present if you are dealing with versioned buckets. Seems like you have a "normal" bucket in which case there are no delete markers, an object is simply there or it isn't.

Upvotes: 2

Related Questions