Example usage for com.amazonaws.services.cloudfront.model Origin getS3OriginConfig

List of usage examples for com.amazonaws.services.cloudfront.model Origin getS3OriginConfig

Introduction

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

Prototype


public S3OriginConfig getS3OriginConfig() 

Source Link

Document

A complex type that contains information about the Amazon S3 origin.

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   www.  ja v  a2s  .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);
}