我在kotlin中有一条骆驼路线,可以从s3存储桶下载文件,因为无法删除存储桶中的文件,所以我使用idempotentConsumer,问题是在下载了少量文件后,我开始得到:com.amazonaws.http.AmazonHttpClient -无法执行HTTP请求:等待连接超时。我发现我需要关闭S3ObjectInputStream,但不确定执行错误还是应该在哪里关闭。
from("aws-s3://$bucketName?accessKey=RAW($s3AccessKey)&secretKey=RAW($s3SecretKey)®ion=$s3Region&deleteAfterRead=$deleteAfterRead&prefix=$prefix")
.idempotentConsumer(header("CamelAwsS3Key"), FileIdempotentRepository.fileIdempotentRepository(File(transporter.cacheRepo!!), 250, 512000))
.setHeader("fileName", simple("header.CamelAwsS3Key"))
.process {
it.`in`.getBody(S3ObjectInputStream::class.java).close()
}
.to("file:$mutualPath/?fileName=\${header.fileName}")
.log("File name set to \${header.CamelAwsS3Key}")