我正在使用AWS SDK for Kotlin和Spring。我设置了两个AWS SDK的依赖项。我做了remove函数。运行错误的返回值。首先,我删除文件以使用deleteObject。其次,检查是否删除了使用deleteMarker()。deleteMarker函数返回类型为布尔型。然后delete函数运行后,我检查了AWS S3是否选中了删除文件。它是正确运行的。但是,它返回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]
*/发布于 2020-09-28 17:04:05
只有在处理版本化的存储桶时,才会出现删除标记。看起来你有一个“普通”的存储桶,在这种情况下没有删除标记,对象只是存在或不存在。
https://stackoverflow.com/questions/64098942
复制相似问题