Example usage for com.amazonaws.services.cloudfront.model StreamingDistributionConfig getLogging

List of usage examples for com.amazonaws.services.cloudfront.model StreamingDistributionConfig getLogging

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudfront.model StreamingDistributionConfig getLogging.

Prototype


public StreamingLoggingConfig getLogging() 

Source Link

Document

A complex type that controls whether access logs are written for the streaming distribution.

Usage

From source file:ch.cyberduck.core.cloudfront.CloudFrontDistributionConfiguration.java

License:Open Source License

private Distribution readStreamingDistribution(final AmazonCloudFront client,
        final StreamingDistributionSummary summary, final Path container, final Distribution.Method method)
        throws BackgroundException {
    // Retrieve distributions configuration to access current logging status settings.
    try {/*w  ww .j av a2  s .  c o  m*/
        final GetStreamingDistributionConfigResult response = client
                .getStreamingDistributionConfig(new GetStreamingDistributionConfigRequest(summary.getId()));
        final StreamingDistributionConfig configuration = response.getStreamingDistributionConfig();
        final Distribution distribution = new Distribution(this.getOrigin(container, method), method,
                summary.isEnabled());
        distribution.setId(summary.getId());
        distribution.setDeployed("Deployed".equals(summary.getStatus()));
        distribution.setUrl(URI.create(
                String.format("%s://%s%s", method.getScheme(), summary.getDomainName(), method.getContext())));
        distribution.setSslUrl(method.equals(Distribution.DOWNLOAD) || method.equals(Distribution.CUSTOM)
                ? URI.create(String.format("https://%s%s", summary.getDomainName(), method.getContext()))
                : null);
        distribution.setReference(configuration.getCallerReference());
        distribution.setEtag(response.getETag());
        distribution.setStatus(LocaleFactory.localizedString(summary.getStatus(), "S3"));
        distribution.setCNAMEs(configuration.getAliases().getItems()
                .toArray(new String[configuration.getAliases().getItems().size()]));
        distribution.setLogging(configuration.getLogging().isEnabled());
        distribution
                .setLoggingContainer(StringUtils.isNotBlank(configuration.getLogging().getBucket())
                        ? ServiceUtils.findBucketNameInHostname(configuration.getLogging().getBucket(),
                                new S3Protocol().getDefaultHostname())
                        : null);
        if (this.getFeature(Purge.class, method) != null) {
            distribution.setInvalidationStatus(this.readInvalidationStatus(client, distribution));
        }
        if (this.getFeature(DistributionLogging.class, method) != null) {
            try {
                distribution.setContainers(new S3BucketListService(session).list(
                        new Path(String.valueOf(Path.DELIMITER),
                                EnumSet.of(Path.Type.volume, Path.Type.directory)),
                        new DisabledListProgressListener()).toList());
            } catch (AccessDeniedException | InteroperabilityException e) {
                log.warn(String.format("Failure listing buckets. %s", e.getMessage()));
            }
        }
        return distribution;
    } catch (AmazonClientException e) {
        throw new AmazonServiceExceptionMappingService().map("Cannot read CDN configuration", e);
    }
}