public class CryptoModuleDispatcher extends S3CryptoModule<MultipartUploadContext>
Modifier and Type | Field and Description |
---|---|
private S3CryptoModuleAE |
ae
Authenticated encryption (AE) cryptographic module.
|
private CryptoMode |
defaultCryptoMode |
private S3CryptoModuleEO |
eo
Encryption only (EO) cryptographic module.
|
Constructor and Description |
---|
CryptoModuleDispatcher(AWSKMSClient kms,
S3Direct s3,
AWSCredentialsProvider credentialsProvider,
EncryptionMaterialsProvider encryptionMaterialsProvider,
CryptoConfiguration cryptoConfig) |
Modifier and Type | Method and Description |
---|---|
void |
abortMultipartUploadSecurely(AbortMultipartUploadRequest req) |
CompleteMultipartUploadResult |
completeMultipartUploadSecurely(CompleteMultipartUploadRequest req) |
CopyPartResult |
copyPartSecurely(CopyPartRequest req) |
S3Object |
getObjectSecurely(GetObjectRequest req) |
ObjectMetadata |
getObjectSecurely(GetObjectRequest req,
java.io.File destinationFile) |
InitiateMultipartUploadResult |
initiateMultipartUploadSecurely(InitiateMultipartUploadRequest req) |
PutObjectResult |
putInstructionFileSecurely(PutInstructionFileRequest req) |
void |
putLocalObjectSecurely(UploadObjectRequest req,
java.lang.String uploadId,
java.io.OutputStream os) |
PutObjectResult |
putObjectSecurely(PutObjectRequest putObjectRequest) |
UploadPartResult |
uploadPartSecurely(UploadPartRequest req) |
private final CryptoMode defaultCryptoMode
private final S3CryptoModuleEO eo
private final S3CryptoModuleAE ae
public CryptoModuleDispatcher(AWSKMSClient kms, S3Direct s3, AWSCredentialsProvider credentialsProvider, EncryptionMaterialsProvider encryptionMaterialsProvider, CryptoConfiguration cryptoConfig)
public PutObjectResult putObjectSecurely(PutObjectRequest putObjectRequest)
putObjectSecurely
in class S3CryptoModule<MultipartUploadContext>
public S3Object getObjectSecurely(GetObjectRequest req)
getObjectSecurely
in class S3CryptoModule<MultipartUploadContext>
public ObjectMetadata getObjectSecurely(GetObjectRequest req, java.io.File destinationFile)
getObjectSecurely
in class S3CryptoModule<MultipartUploadContext>
public CompleteMultipartUploadResult completeMultipartUploadSecurely(CompleteMultipartUploadRequest req) throws AmazonClientException, AmazonServiceException
completeMultipartUploadSecurely
in class S3CryptoModule<MultipartUploadContext>
AmazonClientException
AmazonServiceException
public void abortMultipartUploadSecurely(AbortMultipartUploadRequest req)
abortMultipartUploadSecurely
in class S3CryptoModule<MultipartUploadContext>
public InitiateMultipartUploadResult initiateMultipartUploadSecurely(InitiateMultipartUploadRequest req) throws AmazonClientException, AmazonServiceException
initiateMultipartUploadSecurely
in class S3CryptoModule<MultipartUploadContext>
AmazonClientException
AmazonServiceException
public UploadPartResult uploadPartSecurely(UploadPartRequest req) throws AmazonClientException, AmazonServiceException
NOTE: Because the encryption process requires context from block N-1 in order to encrypt block N, parts uploaded with the AmazonS3EncryptionClient (as opposed to the normal AmazonS3Client) must be uploaded serially, and in order. Otherwise, the previous encryption context isn't available to use when encrypting the current part.
uploadPartSecurely
in class S3CryptoModule<MultipartUploadContext>
AmazonClientException
AmazonServiceException
public CopyPartResult copyPartSecurely(CopyPartRequest req)
copyPartSecurely
in class S3CryptoModule<MultipartUploadContext>
public PutObjectResult putInstructionFileSecurely(PutInstructionFileRequest req)
putInstructionFileSecurely
in class S3CryptoModule<MultipartUploadContext>
EncryptedGetObjectRequest
.public void putLocalObjectSecurely(UploadObjectRequest req, java.lang.String uploadId, java.io.OutputStream os) throws java.io.IOException
putLocalObjectSecurely
in class S3CryptoModule<MultipartUploadContext>
uploadId
- multipart upload idos
- output stream which will be closed upon method completion.java.io.IOException