diff --git a/src/main/java/com/amazonaws/services/neptune/export/ExportToS3NeptuneExportEventHandler.java b/src/main/java/com/amazonaws/services/neptune/export/ExportToS3NeptuneExportEventHandler.java index f5342fd..282d237 100644 --- a/src/main/java/com/amazonaws/services/neptune/export/ExportToS3NeptuneExportEventHandler.java +++ b/src/main/java/com/amazonaws/services/neptune/export/ExportToS3NeptuneExportEventHandler.java @@ -313,15 +313,17 @@ private void uploadCompletionFileToS3(S3TransferManager transferManager, logger.info("Uploading completion file to {}", completionFileS3ObjectInfo.key()); try { - UploadFileRequest uploadFileRequest = UploadFileRequest.builder() - .source(completionFile) - .putObjectRequest(PutObjectRequest.builder() + PutObjectRequest.Builder putObjectRequestBuilder = PutObjectRequest.builder() .bucket(completionFileS3ObjectInfo.bucket()) .key(completionFileS3ObjectInfo.key()) - .expectedBucketOwner(expectedBucketOwner) .metadata(S3ObjectInfo.createObjectMetadata(completionFile.length(), sseKmsKeyId)) - .tagging(createObjectTags(profiles)) - .build()) + .tagging(createObjectTags(profiles)); + if (StringUtils.isNotBlank(expectedBucketOwner)) { + putObjectRequestBuilder = putObjectRequestBuilder.expectedBucketOwner(expectedBucketOwner); + } + UploadFileRequest uploadFileRequest = UploadFileRequest.builder() + .source(completionFile) + .putObjectRequest(putObjectRequestBuilder.build()) .build(); FileUpload upload = transferManager.uploadFile(uploadFileRequest); diff --git a/src/main/java/com/amazonaws/services/neptune/export/NeptuneExportService.java b/src/main/java/com/amazonaws/services/neptune/export/NeptuneExportService.java index 8479914..697cf7f 100644 --- a/src/main/java/com/amazonaws/services/neptune/export/NeptuneExportService.java +++ b/src/main/java/com/amazonaws/services/neptune/export/NeptuneExportService.java @@ -257,14 +257,14 @@ public S3ObjectInfo execute() throws IOException { private void checkS3OutputIsEmpty() { S3Client s3 = S3Client.builder().build(); S3ObjectInfo s3ObjectInfo = new S3ObjectInfo(outputS3Path); - ListObjectsResponse listing = s3.listObjects( - ListObjectsRequest.builder() + ListObjectsRequest.Builder listRequestBuilder = ListObjectsRequest.builder() .bucket(s3ObjectInfo.bucket()) .prefix(s3ObjectInfo.key()) - .maxKeys(1) - .expectedBucketOwner(expectedBucketOwner) - .build() - ); + .maxKeys(1); + if (StringUtils.isNotBlank(expectedBucketOwner)) { + listRequestBuilder = listRequestBuilder.expectedBucketOwner(expectedBucketOwner); + } + ListObjectsResponse listing = s3.listObjects(listRequestBuilder.build()); if (listing.hasContents()) { throw new IllegalStateException(String.format("S3 destination contains existing objects: %s. Set 'overwriteExisting' parameter to 'true' to allow overwriting existing objects.", outputS3Path)); @@ -297,12 +297,14 @@ private File downloadFile(S3TransferManager transferManager, String s3Path) { logger.info("Key : " + configFileS3ObjectInfo.key()); logger.info("File : " + file); - DownloadFileRequest downloadRequest = DownloadFileRequest.builder() - .getObjectRequest(GetObjectRequest.builder() + GetObjectRequest.Builder getObjectRequestBuilder = GetObjectRequest.builder() .bucket(configFileS3ObjectInfo.bucket()) - .key(configFileS3ObjectInfo.key()) - .expectedBucketOwner(expectedBucketOwner) - .build()) + .key(configFileS3ObjectInfo.key()); + if (StringUtils.isNotBlank(expectedBucketOwner)) { + getObjectRequestBuilder = getObjectRequestBuilder.expectedBucketOwner(expectedBucketOwner); + } + DownloadFileRequest downloadRequest = DownloadFileRequest.builder() + .getObjectRequest(getObjectRequestBuilder.build()) .destination(file.toPath()) .build(); diff --git a/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV1.java b/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV1.java index bad4e46..752e231 100644 --- a/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV1.java +++ b/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV1.java @@ -231,14 +231,16 @@ private void uploadTrainingJobConfigurationFileToS3(String filename, S3ObjectInfo s3ObjectInfo = outputS3ObjectInfo.withNewKeySuffix(filename); try { - UploadFileRequest uploadFileRequest = UploadFileRequest.builder() - .source(trainingJobConfigurationFile) - .putObjectRequest(configureServerSideEncryption(PutObjectRequest.builder(), sseKmsKeyId, expectedBucketOwner) + PutObjectRequest.Builder putObjectRequestBuilder = configureServerSideEncryption(PutObjectRequest.builder(), sseKmsKeyId, expectedBucketOwner) .bucket(s3ObjectInfo.bucket()) .key(s3ObjectInfo.key()) - .expectedBucketOwner(expectedBucketOwner) - .tagging(ExportToS3NeptuneExportEventHandler.createObjectTags(profiles)) - .build()) + .tagging(ExportToS3NeptuneExportEventHandler.createObjectTags(profiles)); + if (StringUtils.isNotBlank(expectedBucketOwner)) { + putObjectRequestBuilder = putObjectRequestBuilder.expectedBucketOwner(expectedBucketOwner); + } + UploadFileRequest uploadFileRequest = UploadFileRequest.builder() + .source(trainingJobConfigurationFile) + .putObjectRequest(putObjectRequestBuilder.build()) .build(); FileUpload upload = transferManager.uploadFile(uploadFileRequest); diff --git a/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV2.java b/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV2.java index 0adcba7..fde3497 100644 --- a/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV2.java +++ b/src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV2.java @@ -232,14 +232,16 @@ private void uploadTrainingJobConfigurationFileToS3(String filename, S3ObjectInfo s3ObjectInfo = outputS3ObjectInfo.withNewKeySuffix(filename); try { - UploadFileRequest uploadFileRequest = UploadFileRequest.builder() - .source(trainingJobConfigurationFile) - .putObjectRequest(configureServerSideEncryption(PutObjectRequest.builder(), sseKmsKeyId, expectedBucketOwner) + PutObjectRequest.Builder putObjectRequestBuilder = configureServerSideEncryption(PutObjectRequest.builder(), sseKmsKeyId, expectedBucketOwner) .bucket(s3ObjectInfo.bucket()) .key(s3ObjectInfo.key()) - .expectedBucketOwner(expectedBucketOwner) - .tagging(ExportToS3NeptuneExportEventHandler.createObjectTags(profiles)) - .build()) + .tagging(ExportToS3NeptuneExportEventHandler.createObjectTags(profiles)); + if (StringUtils.isNotBlank(expectedBucketOwner)) { + putObjectRequestBuilder = putObjectRequestBuilder.expectedBucketOwner(expectedBucketOwner); + } + UploadFileRequest uploadFileRequest = UploadFileRequest.builder() + .source(trainingJobConfigurationFile) + .putObjectRequest(putObjectRequestBuilder.build()) .build(); FileUpload upload = transferManager.uploadFile(uploadFileRequest);