attributes.putAll(metadata.getUserMetadata()); if (metadata.getSSEAlgorithm() != null) { attributes.put("s3.sseAlgorithm", metadata.getSSEAlgorithm());
private static PutObjectResult createPutObjectResult(ObjectMetadata metadata) { final PutObjectResult result = new PutObjectResult(); result.setVersionId(metadata.getVersionId()); result.setSSEAlgorithm(metadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(metadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(metadata.getSSECustomerKeyMd5()); result.setExpirationTime(metadata.getExpirationTime()); result.setExpirationTimeRuleId(metadata.getExpirationTimeRuleId()); result.setETag(metadata.getETag()); result.setMetadata(metadata); result.setRequesterCharged(metadata.isRequesterCharged()); return result; }
result.setETag(etag); result.setPartNumber(partNumber); result.setSSEAlgorithm(metadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(metadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(metadata.getSSECustomerKeyMd5());
/** * Based on the given metadata of an S3 response, Returns whether the * specified request should skip MD5 check on the requested object content. * Specifically, MD5 check should be skipped if either SSE-KMS or SSE-C is * involved. * <p> * The reason is that when SSE-KMS or SSE-C is involved, the MD5 returned * from the server side is the MD5 of the ciphertext, which will by * definition mismatch the MD5 on the client side which is computed based on * the plaintext. * @param metadata the ObjectMetadata of an S3 response. * @return true if the specified response should skip MD5 * check on the requested object content. */ public static boolean skipMd5CheckPerResponse(ObjectMetadata metadata) { if (metadata == null) { return false; } final boolean sseKMS = (SSEAlgorithm.KMS.toString().equals(metadata .getSSEAlgorithm())); return (metadata.getSSECustomerAlgorithm() != null) || sseKMS; }
values.put(TransferTable.COLUMN_HEADER_CONTENT_DISPOSITION, metadata.getContentDisposition()); values.put(TransferTable.COLUMN_SSE_ALGORITHM, metadata.getSSEAlgorithm()); values.put(TransferTable.COLUMN_SSE_KMS_KEY, metadata.getSSEAwsKmsKeyId()); values.put(TransferTable.COLUMN_EXPIRATION_TIME_RULE_ID,
final PutObjectRequest putObjectRequest = (PutObjectRequest) request; final ObjectMetadata om = putObjectRequest.getMetadata(); if (om != null && om.getSSEAlgorithm() != null) { return true;
GetObjectMetadataRequest request2 = new GetObjectMetadataRequest("bucketname","keyname"); ObjectMetadata metadata = s3client.getObjectMetadata(request2); if (metadata.getSSEAlgorithm() == null) { // download files directly - it is not encrypted } else { // files encrypted - add the SSE key }
/** * Based on the given metadata of an S3 response, Returns whether the * specified request should skip MD5 check on the requested object content. * Specifically, MD5 check should be skipped if either SSE-KMS or SSE-C is * involved. * <p> * The reason is that when SSE-KMS or SSE-C is involved, the MD5 returned * from the server side is the MD5 of the ciphertext, which will by * definition mismatch the MD5 on the client side which is computed based on * the plaintext. * @param metadata the ObjectMetadata of an S3 response. * @return true if the specified response should skip MD5 * check on the requested object content. */ public static boolean skipMd5CheckPerResponse(ObjectMetadata metadata) { if (metadata == null) { return false; } final boolean sseKMS = (SSEAlgorithm.KMS.toString().equals(metadata .getSSEAlgorithm())); return (metadata.getSSECustomerAlgorithm() != null) || sseKMS; }
result.setETag(metadata.getETag()); result.setPartNumber(partNumber); result.setSSEAlgorithm(metadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(metadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(metadata.getSSECustomerKeyMd5());
result.setSSEAlgorithm(returnedMetadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(returnedMetadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(returnedMetadata.getSSECustomerKeyMd5());
values.put(TransferTable.COLUMN_HEADER_CONTENT_DISPOSITION, metadata.getContentDisposition()); values.put(TransferTable.COLUMN_SSE_ALGORITHM, metadata.getSSEAlgorithm()); values.put(TransferTable.COLUMN_SSE_KMS_KEY, metadata.getSSEAwsKmsKeyId()); values.put(TransferTable.COLUMN_EXPIRATION_TIME_RULE_ID,
message.setHeader(S3Constants.CACHE_CONTROL, objectMetadata.getCacheControl()); message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getRawMetadata()); message.setHeader(S3Constants.SERVER_SIDE_ENCRYPTION, objectMetadata.getSSEAlgorithm()); message.setHeader(S3Constants.USER_METADATA, objectMetadata.getUserMetadata()); message.setHeader(S3Constants.EXPIRATION_TIME, objectMetadata.getExpirationTime());
assertTrue(from.getRawMetadata().size() > 0); assertEquals(restoreExpirationTime, from.getRestoreExpirationTime()); assertEquals("ssealgo", from.getSSEAlgorithm()); assertEquals("SSECustomerAlgorithm", from.getSSECustomerAlgorithm()); assertEquals("sseCustKeyMd5", from.getSSECustomerKeyMd5()); assertEquals("ssealgo", to.getSSEAlgorithm()); assertEquals("SSECustomerAlgorithm", to.getSSECustomerAlgorithm()); assertEquals("sseCustKeyMd5", to.getSSECustomerKeyMd5());
@Test public void cloneEmpty() { ObjectMetadata from = new ObjectMetadata(); for (int i = 0; i < 2; i++) { assertNull(from.getCacheControl()); assertNull(from.getContentDisposition()); assertNull(from.getContentEncoding()); assertTrue(0 == from.getContentLength()); assertNull(from.getContentMD5()); assertNull(from.getContentType()); assertNull(from.getETag()); assertNull(from.getExpirationTime()); assertNull(from.getExpirationTimeRuleId()); assertNull(from.getHttpExpiresDate()); assertTrue(0 == from.getInstanceLength()); assertNull(from.getLastModified()); assertNull(from.getOngoingRestore()); assertTrue(from.getRawMetadata().size() == 0); assertNull(from.getRestoreExpirationTime()); assertNull(from.getSSEAlgorithm()); assertNull(from.getSSECustomerAlgorithm()); assertNull(from.getSSECustomerKeyMd5()); assertTrue(0 == from.getUserMetadata().size()); assertNull(from.getVersionId()); assertNull(from.getStorageClass()); // Clone an empty instance from = from.clone(); } }
final PutObjectRequest putObjectRequest = (PutObjectRequest) request; final ObjectMetadata om = putObjectRequest.getMetadata(); if (om != null && om.getSSEAlgorithm() != null) { return true;
@Override public PutObjectResult answer(InvocationOnMock invocation) throws Throwable { PutObjectRequest putObjectRequest = invocation.getArgument(0); ObjectMetadata metadata = putObjectRequest.getMetadata(); assertEquals("aws:kms", metadata.getSSEAlgorithm()); assertEquals(kmsKeyId, metadata.getRawMetadata().get(Headers.SERVER_SIDE_ENCRYPTION_AWS_KMS_KEYID)); return new PutObjectResult(); } });
attributes.putAll(metadata.getUserMetadata()); if (metadata.getSSEAlgorithm() != null) { attributes.put("s3.sseAlgorithm", metadata.getSSEAlgorithm());
private static PutObjectResult createPutObjectResult(ObjectMetadata metadata) { final PutObjectResult result = new PutObjectResult(); result.setVersionId(metadata.getVersionId()); result.setSSEAlgorithm(metadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(metadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(metadata.getSSECustomerKeyMd5()); result.setExpirationTime(metadata.getExpirationTime()); result.setExpirationTimeRuleId(metadata.getExpirationTimeRuleId()); result.setETag(metadata.getETag()); result.setMetadata(metadata); result.setRequesterCharged(metadata.isRequesterCharged()); return result; }
result.setETag(etag); result.setPartNumber(partNumber); result.setSSEAlgorithm(metadata.getSSEAlgorithm()); result.setSSECustomerAlgorithm(metadata.getSSECustomerAlgorithm()); result.setSSECustomerKeyMd5(metadata.getSSECustomerKeyMd5());
ret.setRestoreExpirationTime(source.getRestoreExpirationTime()); if (source.getSSEAlgorithm() != null) { ret.setSSEAlgorithm(source.getSSEAlgorithm());