in teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/PresignedUrlRequestSerializer.java [149:173]
private static String serializeRequest(@NotNull final PresignedUrlListRequestDto request, final boolean isVersion2) {
final Element document = new Element(OBJECT_KEYS);
if (isVersion2) {
document.setAttribute(PRE_SIGN_V2, "true");
}
if (request.getCustomTtl() != null) {
document.setAttribute(CUSTOM_TTL, String.valueOf(request.getCustomTtl()));
}
if (request.getMultipartContentType() != null) {
document.setAttribute(S3_UPLOAD_CONTENT_TYPE, request.getMultipartContentType());
}
request.getPresignedUrlRequests().stream().filter(Objects::nonNull).forEach(s3ObjectKey -> {
final Element element = XmlUtil.addTextChild(document, OBJECT_KEY, s3ObjectKey.getObjectKey());
element.setAttribute(NUMBER_OF_PARTS, String.valueOf(s3ObjectKey.getDigests() != null ? s3ObjectKey.getDigests().size() : s3ObjectKey.getNumberOfParts()));
if (s3ObjectKey.getDigests() != null) {
for (String digest : s3ObjectKey.getDigests()) {
XmlUtil.addTextChild(element, DIGEST, digest);
}
}
if (s3ObjectKey.getUploadId() != null) {
element.setAttribute(UPLOAD_ID, s3ObjectKey.getUploadId());
}
});
return XmlUtil.toString(document);
}