suspend fun deleteBucketAndAllContents()

in services/s3/e2eTest/S3TestUtils.kt [73:103]


    suspend fun deleteBucketAndAllContents(client: S3Client, bucketName: String) {
        try {
            println("Deleting S3 bucket: $bucketName")

            var resp = client.listObjectsV2 { bucket = bucketName }

            do {
                val objects = resp.contents
                val truncated = resp.isTruncated

                objects?.forEach {
                    client.deleteObject {
                        bucket = bucketName
                        key = it.key
                    }
                }

                if (truncated) {
                    resp = client.listObjectsV2 {
                        bucket = bucketName
                        continuationToken = resp.continuationToken
                    }
                }
            } while (truncated)

            client.deleteBucket { bucket = bucketName }
        } catch (ex: Exception) {
            println("Failed to delete bucket: $bucketName")
            throw ex
        }
    }