@Override public InitiateMultipartUploadResult initiateMultipartUploadSecurely( InitiateMultipartUploadRequest req) { appendUserAgent(req, USER_AGENT); // Generate a one-time use symmetric key and initialize a cipher to // encrypt object data ContentCryptoMaterial cekMaterial = createContentCryptoMaterial(req); if (cryptoConfig.getStorageMode() == ObjectMetadata) { ObjectMetadata metadata = req.getObjectMetadata(); if (metadata == null) metadata = new ObjectMetadata(); // Store encryption info in metadata req.setObjectMetadata(updateMetadataWithContentCryptoMaterial( metadata, null, cekMaterial)); } InitiateMultipartUploadResult result = s3.initiateMultipartUpload(req); T uploadContext = newUploadContext(req, cekMaterial); if (req instanceof MaterialsDescriptionProvider) { MaterialsDescriptionProvider p = (MaterialsDescriptionProvider) req; uploadContext.setMaterialsDescription(p.getMaterialsDescription()); } multipartUploadContexts.put(result.getUploadId(), uploadContext); return result; }
/** * Updates the metadata with the encryption info. * @param request the request that contains the metadata. * @param keyBytesToStoreInMetadata the key in bytes to store in the metadata. * @param symmetricCipher the Cipher. * @param materialsDescription the map of materials to description. * @return the updated ObjectMetadata. */ public static ObjectMetadata updateMetadataWithEncryptionInfo( InitiateMultipartUploadRequest request, byte[] keyBytesToStoreInMetadata, Cipher symmetricCipher, Map<String, String> materialsDescription) { ObjectMetadata metadata = request.getObjectMetadata(); if (metadata == null) metadata = new ObjectMetadata(); updateMetadata(metadata, keyBytesToStoreInMetadata, symmetricCipher, materialsDescription); return metadata; }
@Override public InitiateMultipartUploadResult initiateMultipartUploadSecurely( InitiateMultipartUploadRequest req) { appendUserAgent(req, USER_AGENT); // Generate a one-time use symmetric key and initialize a cipher to // encrypt object data final ContentCryptoMaterial cekMaterial = createContentCryptoMaterial(req); if (cryptoConfig.getStorageMode() == ObjectMetadata) { ObjectMetadata metadata = req.getObjectMetadata(); if (metadata == null) { metadata = new ObjectMetadata(); } // Store encryption info in metadata req.setObjectMetadata(updateMetadataWithContentCryptoMaterial( metadata, null, cekMaterial)); } final InitiateMultipartUploadResult result = s3.initiateMultipartUpload(req); final T uploadContext = newUploadContext(req, cekMaterial); if (req instanceof MaterialsDescriptionProvider) { final MaterialsDescriptionProvider p = (MaterialsDescriptionProvider) req; uploadContext.setMaterialsDescription(p.getMaterialsDescription()); } multipartUploadContexts.put(result.getUploadId(), uploadContext); return result; }
/** * Updates the metadata with the encryption info. * @param request the request that contains the metadata. * @param keyBytesToStoreInMetadata the key in bytes to store in the metadata. * @param symmetricCipher the Cipher. * @param materialsDescription the map of materials to description. * @return the updated ObjectMetadata. */ public static ObjectMetadata updateMetadataWithEncryptionInfo( InitiateMultipartUploadRequest request, byte[] keyBytesToStoreInMetadata, Cipher symmetricCipher, Map<String, String> materialsDescription) { ObjectMetadata metadata = request.getObjectMetadata(); if (metadata == null) metadata = new ObjectMetadata(); updateMetadata(metadata, keyBytesToStoreInMetadata, symmetricCipher, materialsDescription); return metadata; }
@Override public InitiateMultipartUploadResult initiateMultipartUploadSecurely( InitiateMultipartUploadRequest req) { appendUserAgent(req, USER_AGENT); // Generate a one-time use symmetric key and initialize a cipher to // encrypt object data ContentCryptoMaterial cekMaterial = createContentCryptoMaterial(req); if (cryptoConfig.getStorageMode() == ObjectMetadata) { ObjectMetadata metadata = req.getObjectMetadata(); if (metadata == null) metadata = new ObjectMetadata(); // Store encryption info in metadata req.setObjectMetadata(updateMetadataWithContentCryptoMaterial( metadata, null, cekMaterial)); } InitiateMultipartUploadResult result = s3.initiateMultipartUpload(req); T uploadContext = newUploadContext(req, cekMaterial); if (req instanceof MaterialsDescriptionProvider) { MaterialsDescriptionProvider p = (MaterialsDescriptionProvider) req; uploadContext.setMaterialsDescription(p.getMaterialsDescription()); } multipartUploadContexts.put(result.getUploadId(), uploadContext); return result; }
@Override public InitiateMultipartUploadResult initiateMultipartUploadSecurely( InitiateMultipartUploadRequest req) { appendUserAgent(req, USER_AGENT); // Generate a one-time use symmetric key and initialize a cipher to // encrypt object data final ContentCryptoMaterial cekMaterial = createContentCryptoMaterial(req); if (cryptoConfig.getStorageMode() == ObjectMetadata) { ObjectMetadata metadata = req.getObjectMetadata(); if (metadata == null) { metadata = new ObjectMetadata(); } // Store encryption info in metadata req.setObjectMetadata(updateMetadataWithContentCryptoMaterial( metadata, null, cekMaterial)); } final InitiateMultipartUploadResult result = s3.initiateMultipartUpload(req); final T uploadContext = newUploadContext(req, cekMaterial); if (req instanceof MaterialsDescriptionProvider) { final MaterialsDescriptionProvider p = (MaterialsDescriptionProvider) req; uploadContext.setMaterialsDescription(p.getMaterialsDescription()); } multipartUploadContexts.put(result.getUploadId(), uploadContext); return result; }