Example usage for com.amazonaws.services.cloudfront.model ListDistributionsRequest ListDistributionsRequest

List of usage examples for com.amazonaws.services.cloudfront.model ListDistributionsRequest ListDistributionsRequest

Introduction

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

Prototype

ListDistributionsRequest

Source Link

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/*from w  w  w.java2s.c o 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);
}

From source file:org.duracloud.s3task.streaminghls.BaseHlsTaskRunner.java

License:Apache License

/**
 * Determines if a streaming distribution already exists for a given bucket
 *//* w  w  w. j  av  a  2  s  .c o m*/
protected List<DistributionSummary> getAllExistingWebDistributions(String bucketName) {

    List<DistributionSummary> distListForBucket = new ArrayList<>();

    DistributionList distList = cfClient.listDistributions(new ListDistributionsRequest())
            .getDistributionList();

    List<DistributionSummary> webDistList = distList.getItems();
    while (distList.isTruncated()) {
        distList = cfClient
                .listDistributions(new ListDistributionsRequest().withMarker(distList.getNextMarker()))
                .getDistributionList();
        webDistList.addAll(distList.getItems());
    }

    for (DistributionSummary distSummary : webDistList) {
        if (isDistFromBucket(bucketName, distSummary)) {
            distListForBucket.add(distSummary);
        }
    }

    return distListForBucket;
}