in s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/web/S3PreSignedUrlController.java [315:332]
private void finishMultipartUpload(@NotNull final HttpServletRequest httpServletRequest,
@NotNull final CloudFrontSettings settings) throws Exception {
final String objectKeyBase64 = new String(getDecoder().decode(StringUtil.emptyIfNull(httpServletRequest.getParameter(OBJECT_KEY + "_BASE64"))), StandardCharsets.UTF_8);
final String objectKey = StringUtil.isNotEmpty(objectKeyBase64) ? objectKeyBase64 : httpServletRequest.getParameter(OBJECT_KEY);
if (StringUtil.isEmpty(objectKey)) {
throw new HttpServerErrorException(HttpStatus.BAD_REQUEST, OBJECT_KEY + " should be present");
}
final String uploadId = httpServletRequest.getParameter(FINISH_UPLOAD);
if (StringUtil.isEmpty(uploadId)) {
throw new HttpServerErrorException(HttpStatus.BAD_REQUEST, FINISH_UPLOAD + " should be present");
}
final boolean isSuccessful = Boolean.parseBoolean(httpServletRequest.getParameter(UPLOAD_SUCCESSFUL));
final String[] eTags = httpServletRequest.getParameterValues(ETAGS);
if (isSuccessful && (eTags == null || eTags.length < 1)) {
throw new HttpServerErrorException(HttpStatus.BAD_REQUEST, ETAGS + " should be present");
}
myPreSignedManager.finishMultipartUpload(uploadId, objectKey, settings, eTags, isSuccessful);
}