public CompleteMultipartUploadResponse completeMultipartUpload()

in src/main/java/software/amazon/encryption/s3/internal/MultipartUploadObjectPipeline.java [174:193]


    public CompleteMultipartUploadResponse completeMultipartUpload(CompleteMultipartUploadRequest request)
            throws AwsServiceException, SdkClientException {
        String uploadId = request.uploadId();
        final MultipartUploadMaterials uploadContext = _multipartUploadMaterials.get(uploadId);

        if (uploadContext != null && !uploadContext.hasFinalPartBeenSeen()) {
            throw new S3EncryptionClientException(
                    "Unable to complete an encrypted multipart upload without being told which part was the last.  "
                            + "Without knowing which part was the last, the encrypted data in Amazon S3 is incomplete and corrupt.");
        }

        CompleteMultipartUploadRequest actualRequest = request.toBuilder()
                .overrideConfiguration(API_NAME_INTERCEPTOR)
                .build();

        CompleteMultipartUploadResponse response = _s3AsyncClient.completeMultipartUpload(actualRequest).join();

        _multipartUploadMaterials.remove(uploadId);
        return response;
    }