configure-s3-website 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +1 -1
- data/README.md +44 -33
- data/bin/configure-s3-website +2 -24
- data/changelog.md +5 -0
- data/features/cassettes/cucumber_tags/create-cf-dist.yml +134 -0
- data/features/configure_bucket.feature +18 -11
- data/features/create_cloudfront_dist.feature +164 -0
- data/features/step_definitions/steps.rb +44 -7
- data/features/support/env.rb +4 -0
- data/features/support/sample_config_files/config_with_cloudfront_distribution_id.yml +4 -0
- data/features/support/sample_config_files/create_cf_dist.yml +3 -0
- data/features/support/vcr.rb +1 -0
- data/lib/configure-s3-website.rb +5 -0
- data/lib/configure-s3-website/cli.rb +35 -0
- data/lib/configure-s3-website/cloudfront_client.rb +117 -0
- data/lib/configure-s3-website/config_source/config_source.rb +9 -0
- data/lib/configure-s3-website/config_source/file_config_source.rb +19 -3
- data/lib/configure-s3-website/http_helper.rb +83 -0
- data/lib/configure-s3-website/runner.rb +17 -0
- data/lib/configure-s3-website/s3_client.rb +9 -68
- data/lib/configure-s3-website/version.rb +1 -1
- data/lib/configure-s3-website/xml_helper.rb +15 -0
- data/spec/config_source/file_config_source_spec.rb +22 -0
- data/spec/s3_client_spec.rb +2 -2
- data/spec/xml_helper_spec.rb +39 -0
- metadata +21 -6
- data/spec/config_extractor/file_config_extractor_spec.rb +0 -11
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -31,6 +31,33 @@ following command:
|
|
31
31
|
Congratulations! You now have an S3 bucket that can act as a website server for
|
32
32
|
you.
|
33
33
|
|
34
|
+
### Deliver your website via CloudFront
|
35
|
+
|
36
|
+
`configure-s3-website` can create a CloudFront distribution for you. It will ask
|
37
|
+
you whether you want to deliver your website via the CDN. If you answer yes,
|
38
|
+
`configure-s3-website` will create a CloudFront distribution that has the
|
39
|
+
configured S3 bucket as its origin. In addition, it will add the entry
|
40
|
+
`cloudfront_distribution_id: [id-of-the-new-distribution]` into your
|
41
|
+
configuration file.
|
42
|
+
|
43
|
+
CloudFront can be configured in various ways. However, the distribution created
|
44
|
+
by `configure-s3-website` uses sensible defaults for an S3-based website and
|
45
|
+
thus saves you the burden of figuring out how to configure CloudFront. For
|
46
|
+
example, it assumes that your default root object is *index.html*.
|
47
|
+
|
48
|
+
You can see all the settings this gem applies on the new distribution by running
|
49
|
+
the command in verbose mode:
|
50
|
+
|
51
|
+
configure-s3-website --config-file config.yml --verbose
|
52
|
+
|
53
|
+
Note that if you already have the key `cloudfront_distribution_id` in your
|
54
|
+
configuration file, `configure-s3-website` will not create a new distribution.
|
55
|
+
Conversely, if you remove the `cloudfront_distribution_id` key from the file and
|
56
|
+
run `configure-s3-website` again, it will create you a new distribution.
|
57
|
+
|
58
|
+
If you want to, you can tune the distribution settings on the management console
|
59
|
+
at <https://console.aws.amazon.com/cloudfront>.
|
60
|
+
|
34
61
|
### Specifying a non-standard S3 endpoint
|
35
62
|
|
36
63
|
By default, `configure-s3-website` creates the S3 website into the US Standard
|
@@ -67,43 +94,23 @@ supports. All you have to do is to replace the uppercase letter in AWS XML with
|
|
67
94
|
an underscore and an undercase version of the same letter. For example,
|
68
95
|
`KeyPrefixEquals` becomes `key_prefix_equals` in the config file.
|
69
96
|
|
97
|
+
Apply the rules by invoking `configure-s3-website --config [your-config-file]`
|
98
|
+
on the command-line interface. You can verify the results by looking at your
|
99
|
+
bucket on the [S3 console](https://console.aws.amazon.com/s3/home).
|
100
|
+
|
70
101
|
## How does `configure-s3-website` work?
|
71
102
|
|
72
|
-
|
73
|
-
|
74
|
-
API with the following XML:
|
75
|
-
|
76
|
-
```xml
|
77
|
-
<WebsiteConfiguration xmlns='http://s3.amazonaws.com/doc/2006-03-01/'>
|
78
|
-
<IndexDocument>
|
79
|
-
<Suffix>index.html</Suffix>
|
80
|
-
</IndexDocument>
|
81
|
-
<ErrorDocument>
|
82
|
-
<Key>error.html</Key>
|
83
|
-
</ErrorDocument>
|
84
|
-
</WebsiteConfiguration>
|
85
|
-
```
|
103
|
+
`configure-s3-website` uses the AWS REST API of S3 for creating and modifying
|
104
|
+
the bucket. In brief, it does the following things:
|
86
105
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
```json
|
93
|
-
{
|
94
|
-
"Version":"2008-10-17",
|
95
|
-
"Statement":[{
|
96
|
-
"Sid":"PublicReadForGetBucketObjects",
|
97
|
-
"Effect":"Allow",
|
98
|
-
"Principal": { "AWS": "*" },
|
99
|
-
"Action":["s3:GetObject"],
|
100
|
-
"Resource":["arn:aws:s3:::your-bucket-name/*"]
|
101
|
-
}]
|
102
|
-
}
|
103
|
-
```
|
106
|
+
1. Create a bucket for you (if it does not yet exist)
|
107
|
+
2. Add the website configuration on the bucket via the [website REST
|
108
|
+
API](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html)
|
109
|
+
3. Make the bucket **readable to the whole world**
|
110
|
+
4. Apply the redirect (a.k.a routing) rules on the bucket website
|
104
111
|
|
105
|
-
|
106
|
-
|
112
|
+
In addition, if you instruct `configure-s3-website` to create a CloudFront
|
113
|
+
distribution to you, it will call the [CloudFront POST Distribution](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateDistribution.html) API.
|
107
114
|
|
108
115
|
## Development
|
109
116
|
|
@@ -118,6 +125,10 @@ Big thanks to the following contributors (in alphabetical order):
|
|
118
125
|
* SlawD
|
119
126
|
* Steve Schwartz
|
120
127
|
|
128
|
+
## Supported Ruby versions
|
129
|
+
|
130
|
+
The file `.travis.yml` defines the supported Ruby versions.
|
131
|
+
|
121
132
|
## License
|
122
133
|
|
123
134
|
See the file LICENSE.
|
data/bin/configure-s3-website
CHANGED
@@ -5,30 +5,8 @@ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
|
5
5
|
require 'optparse'
|
6
6
|
require 'configure-s3-website'
|
7
7
|
|
8
|
-
options =
|
9
|
-
|
10
|
-
banner = <<END
|
11
|
-
Usage: #{File.basename(__FILE__)} arguments
|
12
|
-
|
13
|
-
Configure your S3 bucket to function as a web site
|
14
|
-
|
15
|
-
Arguments:
|
16
|
-
END
|
17
|
-
|
18
|
-
optparse = OptionParser.new do |opts|
|
19
|
-
opts.banner = banner
|
20
|
-
opts.on('-f', '--config-file FILE',
|
21
|
-
'Pick credentials and the S3 bucket name from a config file') do
|
22
|
-
|yaml_file_path|
|
23
|
-
options[:config_source] =
|
24
|
-
ConfigureS3Website::FileConfigSource.new yaml_file_path
|
25
|
-
end
|
26
|
-
opts.on('--help', 'Display this screen') do
|
27
|
-
puts opts
|
28
|
-
exit
|
29
|
-
end
|
30
|
-
end
|
8
|
+
options, optparse = ConfigureS3Website::CLI.optparse_and_options
|
31
9
|
|
32
10
|
optparse.parse!
|
33
11
|
|
34
|
-
ConfigureS3Website::
|
12
|
+
ConfigureS3Website::Runner.run(options)
|
data/changelog.md
CHANGED
@@ -0,0 +1,134 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: put
|
5
|
+
uri: https://s3.amazonaws.com/website-via-cf/?website
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ! "\n <WebsiteConfiguration xmlns='http://s3.amazonaws.com/doc/2006-03-01/'>\n
|
9
|
+
\ <IndexDocument>\n <Suffix>index.html</Suffix>\n </IndexDocument>\n
|
10
|
+
\ <ErrorDocument>\n <Key>error.html</Key>\n </ErrorDocument>\n
|
11
|
+
\ </WebsiteConfiguration>\n "
|
12
|
+
headers:
|
13
|
+
Date:
|
14
|
+
- Sat, 18 May 2013 20:07:54 UTC
|
15
|
+
Content-Type:
|
16
|
+
- ''
|
17
|
+
Content-Length:
|
18
|
+
- '298'
|
19
|
+
Authorization:
|
20
|
+
- AWS foo:foo
|
21
|
+
response:
|
22
|
+
status:
|
23
|
+
code: 200
|
24
|
+
message: OK
|
25
|
+
headers:
|
26
|
+
X-Amz-Id-2:
|
27
|
+
- vB5gARfon866SjZUI2QIDzjxJjParAzDxo8vLjDC+SBujim60dH0XzrF9uPIlj7u
|
28
|
+
X-Amz-Request-Id:
|
29
|
+
- 16950B9C61E9FF87
|
30
|
+
Date:
|
31
|
+
- Sat, 18 May 2013 20:07:59 GMT
|
32
|
+
Content-Length:
|
33
|
+
- '0'
|
34
|
+
Server:
|
35
|
+
- AmazonS3
|
36
|
+
body:
|
37
|
+
encoding: US-ASCII
|
38
|
+
string: ''
|
39
|
+
http_version:
|
40
|
+
recorded_at: Sat, 18 May 2013 20:07:55 GMT
|
41
|
+
- request:
|
42
|
+
method: put
|
43
|
+
uri: https://s3.amazonaws.com/website-via-cf/?policy
|
44
|
+
body:
|
45
|
+
encoding: US-ASCII
|
46
|
+
string: ! "{\n \"Version\":\"2008-10-17\",\n \"Statement\":[{\n
|
47
|
+
\ \"Sid\":\"PublicReadForGetBucketObjects\",\n \"Effect\":\"Allow\",\n
|
48
|
+
\ \"Principal\": { \"AWS\": \"*\" },\n \"Action\":[\"s3:GetObject\"],\n
|
49
|
+
\ \"Resource\":[\"arn:aws:s3:::website-via-cf/*\"]\n }]\n }"
|
50
|
+
headers:
|
51
|
+
Date:
|
52
|
+
- Sat, 18 May 2013 20:07:55 UTC
|
53
|
+
Content-Type:
|
54
|
+
- ''
|
55
|
+
Content-Length:
|
56
|
+
- '283'
|
57
|
+
Authorization:
|
58
|
+
- AWS foo:foo
|
59
|
+
response:
|
60
|
+
status:
|
61
|
+
code: 204
|
62
|
+
message: No Content
|
63
|
+
headers:
|
64
|
+
X-Amz-Id-2:
|
65
|
+
- v7kj1pp5cB/kl2WbrQeDfrog3f7gVx17znu+S0bvUsf0CxaZtg+1Lk650LalVyQH
|
66
|
+
X-Amz-Request-Id:
|
67
|
+
- 25D798662824A94C
|
68
|
+
Date:
|
69
|
+
- Sat, 18 May 2013 20:08:00 GMT
|
70
|
+
Server:
|
71
|
+
- AmazonS3
|
72
|
+
body:
|
73
|
+
encoding: US-ASCII
|
74
|
+
string: ''
|
75
|
+
http_version:
|
76
|
+
recorded_at: Sat, 18 May 2013 20:07:56 GMT
|
77
|
+
- request:
|
78
|
+
method: post
|
79
|
+
uri: https://cloudfront.amazonaws.com/2012-07-01/distribution
|
80
|
+
body:
|
81
|
+
encoding: US-ASCII
|
82
|
+
string: ! "\n <DistributionConfig xmlns=\"http://cloudfront.amazonaws.com/doc/2012-07-01/\">\n
|
83
|
+
\ <Origins>\n <Quantity>1</Quantity>\n <Items>\n
|
84
|
+
\ <Origin>\n <Id>website-via-cf-S3-origin</Id>\n
|
85
|
+
\ <DomainName>website-via-cf.s3.amazonaws.com</DomainName>\n
|
86
|
+
\ <S3OriginConfig>\n <OriginAccessIdentity></OriginAccessIdentity>\n
|
87
|
+
\ </S3OriginConfig>\n </Origin>\n </Items>\n
|
88
|
+
\ </Origins>\n \n<CallerReference>configure-s3-website gem
|
89
|
+
2013-05-18 23:07:56 +0300</CallerReference>\n<DefaultRootObject>index.html</DefaultRootObject>\n<Logging>\n
|
90
|
+
\ <Enabled>false</Enabled>\n <IncludeCookies>false</IncludeCookies>\n <Bucket></Bucket>\n
|
91
|
+
\ <Prefix></Prefix></Logging>\n<Enabled>true</Enabled>\n<Comment>Created by
|
92
|
+
the configure-s3-website gem</Comment>\n<Aliases>\n <Quantity>0</Quantity></Aliases>\n<DefaultCacheBehavior>\n
|
93
|
+
\ <TargetOriginId>website-via-cf-S3-origin</TargetOriginId>\n <TrustedSigners>\n
|
94
|
+
\ <Enabled>false</Enabled>\n <Quantity>0</Quantity></TrustedSigners>\n
|
95
|
+
\ <ForwardedValues>\n <QueryString>true</QueryString>\n <Cookies>\n
|
96
|
+
\ <Forward>all</Forward></Cookies></ForwardedValues>\n <ViewerProtocolPolicy>allow-all</ViewerProtocolPolicy>\n
|
97
|
+
\ <MinTTL>86400</MinTTL></DefaultCacheBehavior>\n<CacheBehaviors>\n <Quantity>0</Quantity></CacheBehaviors>\n<PriceClass>PriceClass_All</PriceClass>\n
|
98
|
+
\ </DistributionConfig>\n "
|
99
|
+
headers:
|
100
|
+
Date:
|
101
|
+
- Sat, 18 May 2013 20:07:56 UTC
|
102
|
+
Content-Type:
|
103
|
+
- ''
|
104
|
+
Content-Length:
|
105
|
+
- '1451'
|
106
|
+
Authorization:
|
107
|
+
- AWS foo:foo
|
108
|
+
response:
|
109
|
+
status:
|
110
|
+
code: 201
|
111
|
+
message: Created
|
112
|
+
headers:
|
113
|
+
X-Amzn-Requestid:
|
114
|
+
- a3ab794f-bff6-11e2-abb8-3518185a092c
|
115
|
+
Etag:
|
116
|
+
- E1N3VW3E5YJ58U
|
117
|
+
Location:
|
118
|
+
- https://cloudfront.amazonaws.com/2012-07-01/distribution/E45H2VN49KPDU
|
119
|
+
Content-Type:
|
120
|
+
- text/xml
|
121
|
+
Content-Length:
|
122
|
+
- '1536'
|
123
|
+
Date:
|
124
|
+
- Sat, 18 May 2013 20:08:00 GMT
|
125
|
+
body:
|
126
|
+
encoding: US-ASCII
|
127
|
+
string: ! '<?xml version="1.0"?>
|
128
|
+
|
129
|
+
<Distribution xmlns="http://cloudfront.amazonaws.com/doc/2012-07-01/"><Id>E45H2VN49KPDU</Id><Status>InProgress</Status><LastModifiedTime>2013-05-18T20:08:00.350Z</LastModifiedTime><InProgressInvalidationBatches>0</InProgressInvalidationBatches><DomainName>d3feoe9t5ufu01.cloudfront.net</DomainName><ActiveTrustedSigners><Enabled>false</Enabled><Quantity>0</Quantity></ActiveTrustedSigners><DistributionConfig><CallerReference>configure-s3-website
|
130
|
+
gem 2013-05-18 23:07:56 +0300</CallerReference><Aliases><Quantity>0</Quantity></Aliases><DefaultRootObject>index.html</DefaultRootObject><Origins><Quantity>1</Quantity><Items><Origin><Id>website-via-cf-S3-origin</Id><DomainName>website-via-cf.s3.amazonaws.com</DomainName><S3OriginConfig><OriginAccessIdentity></OriginAccessIdentity></S3OriginConfig></Origin></Items></Origins><DefaultCacheBehavior><TargetOriginId>website-via-cf-S3-origin</TargetOriginId><ForwardedValues><QueryString>true</QueryString><Cookies><Forward>all</Forward></Cookies></ForwardedValues><TrustedSigners><Enabled>false</Enabled><Quantity>0</Quantity></TrustedSigners><ViewerProtocolPolicy>allow-all</ViewerProtocolPolicy><MinTTL>86400</MinTTL></DefaultCacheBehavior><CacheBehaviors><Quantity>0</Quantity></CacheBehaviors><Comment>Created
|
131
|
+
by the configure-s3-website gem</Comment><Logging><Enabled>false</Enabled><IncludeCookies>false</IncludeCookies><Bucket></Bucket><Prefix></Prefix></Logging><PriceClass>PriceClass_All</PriceClass><Enabled>true</Enabled></DistributionConfig></Distribution>'
|
132
|
+
http_version:
|
133
|
+
recorded_at: Sat, 18 May 2013 20:07:57 GMT
|
134
|
+
recorded_with: VCR 2.3.0
|
@@ -2,21 +2,24 @@ Feature: configure an S3 bucket to function as a website
|
|
2
2
|
|
3
3
|
@bucket-does-not-exist
|
4
4
|
Scenario: The bucket does not yet exist
|
5
|
-
|
6
|
-
|
5
|
+
When I run the configure-s3-website command with parameters
|
6
|
+
| option | value |
|
7
|
+
| --config-file | features/support/sample_config_files/s3_config_with_non-existing_bucket.yml |
|
7
8
|
Then the output should be
|
8
9
|
"""
|
9
10
|
Created bucket name-of-a-new-bucket in the US Standard Region
|
10
11
|
Bucket name-of-a-new-bucket now functions as a website
|
11
12
|
Bucket name-of-a-new-bucket is now readable to the whole world
|
12
13
|
No redirects to configure for name-of-a-new-bucket bucket
|
14
|
+
Do you want to deliver your website via CloudFront, the CDN of Amazon? [y/N]
|
13
15
|
|
14
16
|
"""
|
15
17
|
|
16
18
|
@bucket-does-not-exist
|
17
19
|
Scenario: The configuration does not contain the 's3_endpoint' setting
|
18
|
-
|
19
|
-
|
20
|
+
When I run the configure-s3-website command with parameters
|
21
|
+
| option | value |
|
22
|
+
| --config-file | features/support/sample_config_files/s3_config_with_non-existing_bucket.yml |
|
20
23
|
Then the output should include
|
21
24
|
"""
|
22
25
|
Created bucket name-of-a-new-bucket in the US Standard Region
|
@@ -24,8 +27,9 @@ Feature: configure an S3 bucket to function as a website
|
|
24
27
|
|
25
28
|
@bucket-does-not-exist-in-tokyo
|
26
29
|
Scenario: Create bucket into the Tokyo region
|
27
|
-
|
28
|
-
|
30
|
+
When I run the configure-s3-website command with parameters
|
31
|
+
| option | value |
|
32
|
+
| --config-file | features/support/sample_config_files/endpoint_tokyo.yml |
|
29
33
|
Then the output should include
|
30
34
|
"""
|
31
35
|
Created bucket name-of-a-new-bucket in the Asia Pacific (Tokyo) Region
|
@@ -33,9 +37,10 @@ Feature: configure an S3 bucket to function as a website
|
|
33
37
|
|
34
38
|
@bucket-exists
|
35
39
|
Scenario: The bucket already exists
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
When I run the configure-s3-website command with parameters
|
41
|
+
| option | value |
|
42
|
+
| --config-file | features/support/sample_config_files/s3_config_with_existing_bucket.yml |
|
43
|
+
Then the output should include
|
39
44
|
"""
|
40
45
|
Bucket name-of-an-existing-bucket now functions as a website
|
41
46
|
Bucket name-of-an-existing-bucket is now readable to the whole world
|
@@ -45,13 +50,15 @@ Feature: configure an S3 bucket to function as a website
|
|
45
50
|
|
46
51
|
@redirects
|
47
52
|
Scenario: The user wants to configure redirects for the S3 website
|
48
|
-
|
49
|
-
|
53
|
+
And I run the configure-s3-website command with parameters
|
54
|
+
| option | value |
|
55
|
+
| --config-file | features/support/sample_config_files/redirects.yml |
|
50
56
|
Then the output should be
|
51
57
|
"""
|
52
58
|
Created bucket website-with-redirects in the US Standard Region
|
53
59
|
Bucket website-with-redirects now functions as a website
|
54
60
|
Bucket website-with-redirects is now readable to the whole world
|
55
61
|
1 redirects configured for website-with-redirects bucket
|
62
|
+
Do you want to deliver your website via CloudFront, the CDN of Amazon? [y/N]
|
56
63
|
|
57
64
|
"""
|
@@ -0,0 +1,164 @@
|
|
1
|
+
Feature: Create CloudFront distribution
|
2
|
+
|
3
|
+
@create-cf-dist
|
4
|
+
Scenario: The user wants to deliver his website via CloudFront
|
5
|
+
Given I answer 'yes' to 'do you want to use CloudFront'
|
6
|
+
When I run the configure-s3-website command with parameters
|
7
|
+
| option | value |
|
8
|
+
| --config-file | features/support/sample_config_files/create_cf_dist.yml |
|
9
|
+
Then the output should be
|
10
|
+
"""
|
11
|
+
Bucket website-via-cf now functions as a website
|
12
|
+
Bucket website-via-cf is now readable to the whole world
|
13
|
+
No redirects to configure for website-via-cf bucket
|
14
|
+
Do you want to deliver your website via CloudFront, the CDN of Amazon? [y/N]
|
15
|
+
The distribution E45H2VN49KPDU at d3feoe9t5ufu01.cloudfront.net now delivers the bucket website-via-cf
|
16
|
+
Please allow up to 15 minutes for the distribution to initialise
|
17
|
+
For more information on the distribution, see https://console.aws.amazon.com/cloudfront
|
18
|
+
Added setting 'cloudfront_distribution_id: E45H2VN49KPDU' into features/support/sample_config_files/create_cf_dist.yml
|
19
|
+
|
20
|
+
"""
|
21
|
+
|
22
|
+
@create-cf-dist
|
23
|
+
Scenario: The user wants to deliver his website via CloudFront and see details on the new distribution
|
24
|
+
Given I answer 'yes' to 'do you want to use CloudFront'
|
25
|
+
When I run the configure-s3-website command with parameters
|
26
|
+
| option | value |
|
27
|
+
| --config-file | features/support/sample_config_files/create_cf_dist.yml |
|
28
|
+
| --verbose | |
|
29
|
+
Then the output should be
|
30
|
+
"""
|
31
|
+
Bucket website-via-cf now functions as a website
|
32
|
+
Bucket website-via-cf is now readable to the whole world
|
33
|
+
No redirects to configure for website-via-cf bucket
|
34
|
+
Do you want to deliver your website via CloudFront, the CDN of Amazon? [y/N]
|
35
|
+
The distribution E45H2VN49KPDU at d3feoe9t5ufu01.cloudfront.net now delivers the bucket website-via-cf
|
36
|
+
Please allow up to 15 minutes for the distribution to initialise
|
37
|
+
For more information on the distribution, see https://console.aws.amazon.com/cloudfront
|
38
|
+
Below is the response from the CloudFront API:
|
39
|
+
<?xml version='1.0'?>
|
40
|
+
<Distribution xmlns='http://cloudfront.amazonaws.com/doc/2012-07-01/'>
|
41
|
+
<Id>
|
42
|
+
E45H2VN49KPDU
|
43
|
+
</Id>
|
44
|
+
<Status>
|
45
|
+
InProgress
|
46
|
+
</Status>
|
47
|
+
<LastModifiedTime>
|
48
|
+
2013-05-18T20:08:00.350Z
|
49
|
+
</LastModifiedTime>
|
50
|
+
<InProgressInvalidationBatches>
|
51
|
+
0
|
52
|
+
</InProgressInvalidationBatches>
|
53
|
+
<DomainName>
|
54
|
+
d3feoe9t5ufu01.cloudfront.net
|
55
|
+
</DomainName>
|
56
|
+
<ActiveTrustedSigners>
|
57
|
+
<Enabled>
|
58
|
+
false
|
59
|
+
</Enabled>
|
60
|
+
<Quantity>
|
61
|
+
0
|
62
|
+
</Quantity>
|
63
|
+
</ActiveTrustedSigners>
|
64
|
+
<DistributionConfig>
|
65
|
+
<CallerReference>
|
66
|
+
configure-s3-website gem 2013-05-18 23:07:56 +0300
|
67
|
+
</CallerReference>
|
68
|
+
<Aliases>
|
69
|
+
<Quantity>
|
70
|
+
0
|
71
|
+
</Quantity>
|
72
|
+
</Aliases>
|
73
|
+
<DefaultRootObject>
|
74
|
+
index.html
|
75
|
+
</DefaultRootObject>
|
76
|
+
<Origins>
|
77
|
+
<Quantity>
|
78
|
+
1
|
79
|
+
</Quantity>
|
80
|
+
<Items>
|
81
|
+
<Origin>
|
82
|
+
<Id>
|
83
|
+
website-via-cf-S3-origin
|
84
|
+
</Id>
|
85
|
+
<DomainName>
|
86
|
+
website-via-cf.s3.amazonaws.com
|
87
|
+
</DomainName>
|
88
|
+
<S3OriginConfig>
|
89
|
+
<OriginAccessIdentity/>
|
90
|
+
</S3OriginConfig>
|
91
|
+
</Origin>
|
92
|
+
</Items>
|
93
|
+
</Origins>
|
94
|
+
<DefaultCacheBehavior>
|
95
|
+
<TargetOriginId>
|
96
|
+
website-via-cf-S3-origin
|
97
|
+
</TargetOriginId>
|
98
|
+
<ForwardedValues>
|
99
|
+
<QueryString>
|
100
|
+
true
|
101
|
+
</QueryString>
|
102
|
+
<Cookies>
|
103
|
+
<Forward>
|
104
|
+
all
|
105
|
+
</Forward>
|
106
|
+
</Cookies>
|
107
|
+
</ForwardedValues>
|
108
|
+
<TrustedSigners>
|
109
|
+
<Enabled>
|
110
|
+
false
|
111
|
+
</Enabled>
|
112
|
+
<Quantity>
|
113
|
+
0
|
114
|
+
</Quantity>
|
115
|
+
</TrustedSigners>
|
116
|
+
<ViewerProtocolPolicy>
|
117
|
+
allow-all
|
118
|
+
</ViewerProtocolPolicy>
|
119
|
+
<MinTTL>
|
120
|
+
86400
|
121
|
+
</MinTTL>
|
122
|
+
</DefaultCacheBehavior>
|
123
|
+
<CacheBehaviors>
|
124
|
+
<Quantity>
|
125
|
+
0
|
126
|
+
</Quantity>
|
127
|
+
</CacheBehaviors>
|
128
|
+
<Comment>
|
129
|
+
Created by the configure-s3-website gem
|
130
|
+
</Comment>
|
131
|
+
<Logging>
|
132
|
+
<Enabled>
|
133
|
+
false
|
134
|
+
</Enabled>
|
135
|
+
<IncludeCookies>
|
136
|
+
false
|
137
|
+
</IncludeCookies>
|
138
|
+
<Bucket/>
|
139
|
+
<Prefix/>
|
140
|
+
</Logging>
|
141
|
+
<PriceClass>
|
142
|
+
PriceClass_All
|
143
|
+
</PriceClass>
|
144
|
+
<Enabled>
|
145
|
+
true
|
146
|
+
</Enabled>
|
147
|
+
</DistributionConfig>
|
148
|
+
</Distribution>
|
149
|
+
Added setting 'cloudfront_distribution_id: E45H2VN49KPDU' into features/support/sample_config_files/create_cf_dist.yml
|
150
|
+
|
151
|
+
"""
|
152
|
+
|
153
|
+
@bucket-exists
|
154
|
+
Scenario: The user already has CloudFront configured in his configuration file
|
155
|
+
When I run the configure-s3-website command with parameters
|
156
|
+
| option | value |
|
157
|
+
| --config-file | features/support/sample_config_files/config_with_cloudfront_distribution_id.yml |
|
158
|
+
Then the output should be
|
159
|
+
"""
|
160
|
+
Bucket name-of-an-existing-bucket now functions as a website
|
161
|
+
Bucket name-of-an-existing-bucket is now readable to the whole world
|
162
|
+
No redirects to configure for name-of-an-existing-bucket bucket
|
163
|
+
|
164
|
+
"""
|