public CreateMultipartUploadResponse createMultipartUpload()

in src/main/java/software/amazon/encryption/s3/internal/MultipartUploadObjectPipeline.java [62:86]


    public CreateMultipartUploadResponse createMultipartUpload(CreateMultipartUploadRequest request) {
        EncryptionMaterialsRequest.Builder requestBuilder = EncryptionMaterialsRequest.builder()
                .s3Request(request);

        EncryptionMaterials materials = _cryptoMaterialsManager.getEncryptionMaterials(requestBuilder.build());

        MultipartEncryptedContent encryptedContent = _contentEncryptionStrategy.initMultipartEncryption(materials);

        Map<String, String> metadata = new HashMap<>(request.metadata());
        metadata = _contentMetadataEncodingStrategy.encodeMetadata(materials, encryptedContent.getIv(), metadata);
        request = request.toBuilder()
                .overrideConfiguration(API_NAME_INTERCEPTOR)
                .metadata(metadata).build();

        CreateMultipartUploadResponse response = _s3AsyncClient.createMultipartUpload(request).join();

        MultipartUploadMaterials mpuMaterials = MultipartUploadMaterials.builder()
                .fromEncryptionMaterials(materials)
                .cipher(encryptedContent.getCipher())
                .build();

        _multipartUploadMaterials.put(response.uploadId(), mpuMaterials);

        return response;
    }