List of usage examples for com.amazonaws.services.s3.model SetObjectTaggingRequest setKey
public void setKey(String key)
From source file:org.finra.herd.dao.impl.S3DaoImpl.java
License:Apache License
private void tagVersionsHelper(final S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto, final S3FileTransferRequestParamsDto s3ObjectTaggerParamsDto, final List<S3VersionSummary> s3VersionSummaries, final Tag tag) { // Initialize an S3 version for the error message in the catch block. S3VersionSummary currentS3VersionSummary = s3VersionSummaries.get(0); // Amazon S3 client to access S3 objects. AmazonS3Client s3Client = null;/* w ww . j av a 2 s.co m*/ // Amazon S3 client for S3 object tagging. AmazonS3Client s3ObjectTaggerClient = null; try { // Create an S3 client to access S3 objects. s3Client = getAmazonS3(s3FileTransferRequestParamsDto); // Create an S3 client for S3 object tagging. s3ObjectTaggerClient = getAmazonS3(s3ObjectTaggerParamsDto); // Create a get object tagging request. GetObjectTaggingRequest getObjectTaggingRequest = new GetObjectTaggingRequest( s3FileTransferRequestParamsDto.getS3BucketName(), null, null); // Create a set object tagging request. SetObjectTaggingRequest setObjectTaggingRequest = new SetObjectTaggingRequest( s3FileTransferRequestParamsDto.getS3BucketName(), null, null, null); for (S3VersionSummary s3VersionSummary : s3VersionSummaries) { // Set the current S3 version summary. currentS3VersionSummary = s3VersionSummary; // Retrieve the current tagging information for the S3 version. getObjectTaggingRequest.setKey(s3VersionSummary.getKey()); getObjectTaggingRequest.setVersionId(s3VersionSummary.getVersionId()); GetObjectTaggingResult getObjectTaggingResult = s3Operations .getObjectTagging(getObjectTaggingRequest, s3Client); // Update the list of tags to include the specified S3 object tag. List<Tag> updatedTags = new ArrayList<>(); updatedTags.add(tag); if (CollectionUtils.isNotEmpty(getObjectTaggingResult.getTagSet())) { for (Tag currentTag : getObjectTaggingResult.getTagSet()) { if (!StringUtils.equals(tag.getKey(), currentTag.getKey())) { updatedTags.add(currentTag); } } } // Update tagging information for the S3 version. setObjectTaggingRequest.setKey(s3VersionSummary.getKey()); setObjectTaggingRequest.setVersionId(s3VersionSummary.getVersionId()); setObjectTaggingRequest.setTagging(new ObjectTagging(updatedTags)); s3Operations.setObjectTagging(setObjectTaggingRequest, s3ObjectTaggerClient); } } catch (Exception e) { throw new IllegalStateException(String.format( "Failed to tag S3 object with \"%s\" key and \"%s\" version id in \"%s\" bucket. Reason: %s", currentS3VersionSummary.getKey(), currentS3VersionSummary.getVersionId(), s3FileTransferRequestParamsDto.getS3BucketName(), e.getMessage()), e); } finally { if (s3Client != null) { s3Client.shutdown(); } if (s3ObjectTaggerClient != null) { s3ObjectTaggerClient.shutdown(); } } }