Example usage for com.amazonaws.services.s3.model Tag getKey

List of usage examples for com.amazonaws.services.s3.model Tag getKey

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model Tag getKey.

Prototype

public String getKey() 

Source Link

Usage

From source file:org.finra.herd.dao.impl.S3DaoImpl.java

License:Apache License

@Override
public void tagObjects(final S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto,
        final S3FileTransferRequestParamsDto s3ObjectTaggerParamsDto,
        final List<S3ObjectSummary> s3ObjectSummaries, final Tag tag) {
    LOGGER.info(//from  ww  w .j a v  a 2  s.  c o  m
            "Tagging objects in S3... s3BucketName=\"{}\" s3KeyPrefix=\"{}\" s3KeyCount={} s3ObjectTagKey=\"{}\" s3ObjectTagValue=\"{}\"",
            s3FileTransferRequestParamsDto.getS3BucketName(), s3FileTransferRequestParamsDto.getS3KeyPrefix(),
            CollectionUtils.size(s3ObjectSummaries), tag.getKey(), tag.getValue());

    if (!CollectionUtils.isEmpty(s3ObjectSummaries)) {
        // Convert a list of S3 object summaries to S3 version summaries without version identifiers.
        List<S3VersionSummary> s3VersionSummaries = new ArrayList<>();
        for (S3ObjectSummary s3ObjectSummary : s3ObjectSummaries) {
            S3VersionSummary s3VersionSummary = new S3VersionSummary();
            s3VersionSummary.setBucketName(s3ObjectSummary.getBucketName());
            s3VersionSummary.setKey(s3ObjectSummary.getKey());
            s3VersionSummaries.add(s3VersionSummary);
        }

        // Tag S3 objects.
        tagVersionsHelper(s3FileTransferRequestParamsDto, s3ObjectTaggerParamsDto, s3VersionSummaries, tag);

        // Log a list of files tagged in the S3 bucket.
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("Successfully tagged files in S3 bucket. "
                    + "s3BucketName=\"{}\" s3KeyPrefix=\"{}\" s3KeyCount={} s3ObjectTagKey=\"{}\" s3ObjectTagValue=\"{}\"",
                    s3FileTransferRequestParamsDto.getS3BucketName(),
                    s3FileTransferRequestParamsDto.getS3KeyPrefix(), CollectionUtils.size(s3ObjectSummaries),
                    tag.getKey(), tag.getValue());

            for (S3ObjectSummary s3ObjectSummary : s3ObjectSummaries) {
                LOGGER.info("s3Key=\"{}\"", s3ObjectSummary.getKey());
            }
        }
    }
}

From source file:org.finra.herd.dao.impl.S3DaoImpl.java

License:Apache License

@Override
public void tagVersions(final S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto,
        final S3FileTransferRequestParamsDto s3ObjectTaggerParamsDto,
        final List<S3VersionSummary> s3VersionSummaries, final Tag tag) {
    // Eliminate delete markers from the list of version summaries to be tagged.
    List<S3VersionSummary> s3VersionSummariesWithoutDeleteMarkers = null;
    if (CollectionUtils.isNotEmpty(s3VersionSummaries)) {
        s3VersionSummariesWithoutDeleteMarkers = s3VersionSummaries.stream()
                .filter(s3VersionSummary -> !s3VersionSummary.isDeleteMarker()).collect(Collectors.toList());
    }/*  w ww . j a v a2 s. co  m*/

    LOGGER.info(
            "Tagging versions in S3... s3BucketName=\"{}\" s3KeyPrefix=\"{}\" s3VersionCount={} s3ObjectTagKey=\"{}\" s3ObjectTagValue=\"{}\" "
                    + "Excluding from tagging S3 delete markers... s3DeleteMarkerCount={}",
            s3FileTransferRequestParamsDto.getS3BucketName(), s3FileTransferRequestParamsDto.getS3KeyPrefix(),
            CollectionUtils.size(s3VersionSummariesWithoutDeleteMarkers), tag.getKey(), tag.getValue(),
            CollectionUtils.size(s3VersionSummaries)
                    - CollectionUtils.size(s3VersionSummariesWithoutDeleteMarkers));

    if (CollectionUtils.isNotEmpty(s3VersionSummariesWithoutDeleteMarkers)) {
        // Tag S3 versions.
        tagVersionsHelper(s3FileTransferRequestParamsDto, s3ObjectTaggerParamsDto,
                s3VersionSummariesWithoutDeleteMarkers, tag);

        // Log a list of S3 versions that got tagged.
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("Successfully tagged versions in S3 bucket. "
                    + "s3BucketName=\"{}\" s3KeyPrefix=\"{}\" s3VersionCount={} s3ObjectTagKey=\"{}\" s3ObjectTagValue=\"{}\"",
                    s3FileTransferRequestParamsDto.getS3BucketName(),
                    s3FileTransferRequestParamsDto.getS3KeyPrefix(),
                    s3VersionSummariesWithoutDeleteMarkers.size(), tag.getKey(), tag.getValue());

            for (S3VersionSummary s3VersionSummary : s3VersionSummariesWithoutDeleteMarkers) {
                LOGGER.info("s3Key=\"{}\" s3VersionId=\"{}\"", s3VersionSummary.getKey(),
                        s3VersionSummary.getVersionId());
            }
        }
    }
}

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;//from w  ww .ja va 2 s.com

    // 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();
        }
    }
}