in aws-lambda-common/src/main/java/jetbrains/buildServer/runner/lambda/directory/S3WorkingDirectoryTransferImpl.kt [57:83]
override fun upload(key: String, workingDirectory: File?, properties: Map<String, String>?): String {
logger.message("Uploading working directory $workingDirectory to S3 bucket")
if (!checkIfBucketExists()) {
createBucket()
}
logger.message("Starting upload of working directory...")
val objectMetadata = ObjectMetadata().apply {
contentType = "plain/text"
properties?.forEach { (key, value) -> addUserMetadata(key, value) }
}
val putObjectRequest = PutObjectRequest(this.name, key, workingDirectory).apply {
metadata = objectMetadata
}
val upload = transferManager.upload(putObjectRequest)
upload.waitForCompletion()
val generatePresignedUrlRequest = GeneratePresignedUrlRequest(this.name, key).apply {
method = HttpMethod.GET
expiration = generateTimeout()
}
val url = s3Client.generatePresignedUrl(generatePresignedUrlRequest)
logger.message("Upload complete")
return url.toString()
}