Example usage for com.amazonaws.services.cloudfront AmazonCloudFront listDistributions

List of usage examples for com.amazonaws.services.cloudfront AmazonCloudFront listDistributions

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudfront AmazonCloudFront listDistributions.

Prototype

ListDistributionsResult listDistributions(ListDistributionsRequest listDistributionsRequest);

Source Link

Document

List CloudFront distributions.

Usage

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

License:Open Source License

@Override
public Distribution read(final Path file, final Distribution.Method method, final LoginCallback prompt)
        throws BackgroundException {
    final Path container = containerService.getContainer(file);
    return this.authenticated(new Authenticated<Distribution>() {
        @Override//  w  ww. j a  v a 2 s.co m
        public Distribution call() throws BackgroundException {
            try {
                if (log.isDebugEnabled()) {
                    log.debug(String.format("List %s distributions", method));
                }
                final AmazonCloudFront client = client(container);
                if (method.equals(Distribution.STREAMING)) {
                    for (StreamingDistributionSummary d : client
                            .listStreamingDistributions(new ListStreamingDistributionsRequest())
                            .getStreamingDistributionList().getItems()) {
                        final S3Origin config = d.getS3Origin();
                        if (config != null) {
                            final URI origin = getOrigin(container, method);
                            if (config.getDomainName().equals(origin.getHost())) {
                                // We currently only support one distribution per bucket
                                final Distribution distribution = readStreamingDistribution(client, d,
                                        container, method);
                                cache.put(container, distribution);
                                return distribution;
                            }
                        }
                    }
                } else if (method.equals(Distribution.DOWNLOAD)) {
                    // List distributions restricting to bucket name origin
                    for (DistributionSummary d : client.listDistributions(new ListDistributionsRequest())
                            .getDistributionList().getItems()) {
                        for (Origin o : d.getOrigins().getItems()) {
                            final S3OriginConfig config = o.getS3OriginConfig();
                            if (config != null) {
                                final URI origin = getOrigin(container, method);
                                if (o.getDomainName().equals(origin.getHost())) {
                                    // We currently only support one distribution per bucket
                                    final Distribution distribution = readDownloadDistribution(client, d,
                                            container, method);
                                    cache.put(container, distribution);
                                    return distribution;
                                }
                            }
                        }
                    }
                } else if (method.equals(Distribution.CUSTOM) || method.equals(Distribution.WEBSITE_CDN)) {
                    for (DistributionSummary d : client.listDistributions(new ListDistributionsRequest())
                            .getDistributionList().getItems()) {
                        for (Origin o : d.getOrigins().getItems()) {
                            // Listing all distributions and look for custom origin
                            final CustomOriginConfig config = o.getCustomOriginConfig();
                            if (config != null) {
                                final URI origin = getOrigin(container, method);
                                if (o.getDomainName().equals(origin.getHost())) {
                                    // We currently only support one distribution per bucket
                                    final Distribution distribution = readDownloadDistribution(client, d,
                                            container, method);
                                    cache.put(container, distribution);
                                    return distribution;
                                }
                            }
                        }
                    }
                }
                final URI origin = getOrigin(container, method);
                // Return disabled configuration
                return new Distribution(origin, method, false);
            } catch (AmazonClientException e) {
                throw new AmazonServiceExceptionMappingService().map("Cannot read CDN configuration", e);
            }
        }
    }, prompt);
}