【问题标题】:AWS S3 deleteMarker() retrun nullAWS S3 删除 Marker() 返回 null
【发布时间】:2020-09-28 08:55:31
【问题描述】:

我在 Spring 中使用适用于 Kotlin 的 AWS 开发工具包。我设置了两个 AWS 开发工具包的依赖项。我做了删除功能。那运行错误的返回值。首先,我删除文件以使用 deleteObject。其次,它检查了删除以使用 deleteMarker()。 deleteMarker 函数的返回类型是布尔值。然后删除功能运行后,我检查了 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]
*/

【问题讨论】:

    标签: java spring amazon-web-services kotlin amazon-s3


    【解决方案1】:

    只有在处理版本化存储桶时才会出现删除标记。好像你有一个“正常”的桶,在这种情况下没有删除标记,一个对象只是存在或不存在。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多