jekyll-s3 2.6.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -31,6 +31,16 @@ s3_bucket: your.blog.bucket.com
31
31
 
32
32
  * Run `jekyll-s3` to push your Jekyll blog to S3. Congratulations! You are live.
33
33
 
34
+ ### Using environment variables
35
+
36
+ You can use ERB in your `_jekyll_s3.yml` file which incorporates environment variables:
37
+
38
+ ```yaml
39
+ s3_id: <%= ENV['S3_ID'] %>
40
+ s3_secret: <%= ENV['S3_SECRET'] %>
41
+ s3_bucket: blog.example.com
42
+ ```
43
+
34
44
  ## Additional features
35
45
 
36
46
  ### Cache Control
@@ -117,12 +127,32 @@ You can reduce the cost of hosting your blog on S3 by using Reduced Redundancy S
117
127
 
118
128
  It is easy to deliver your S3-based web site via Cloudfront, the CDN of Amazon.
119
129
 
120
- * Go to <https://console.aws.amazon.com/cloudfront/home>
121
- * Create a distribution and set the your Jekyll S3 bucket as the origin
122
- * Add the `cloudfront_distribution_id: your-dist-id` setting into
123
- `_jekyll_s3.yml`
124
- * Run `jekyll-s3` to deploy your site to S3 and invalidate the Cloudfront
125
- distribution
130
+ #### Creating a new CloudFront distribution
131
+
132
+ When you run the command `configure-s3-website`, it will ask you whether you
133
+ want to deliver your website via CloudFront. If you answer yes,
134
+ `configure-s3-website` will create a CloudFront distribution for you.
135
+
136
+ This feature was added into the version 1.3.0 of the `configure-s3-website` gem.
137
+ For more information, see the [gem's
138
+ documentation](https://github.com/laurilehmijoki/configure-s3-website).
139
+
140
+ #### Using your existing CloudFront distribution
141
+
142
+ If you already have a CloudFront distribution that serves data from your Jekyll
143
+ S3 bucket, just add the following line into the file `_jekyll_s3.yml`:
144
+
145
+ cloudfront_distribution_id: your-dist-id
146
+
147
+ Next time you run `jekyll-s3`, it will invalidate the items on CloudFront and
148
+ thus force the CDN system to reload the changes from your Jekyll S3 bucket.
149
+
150
+ #### Specifying custom settings for your CloudFront distribution
151
+
152
+ The gem `configure-s3-website`, which is a dependency of `jekyll-s3`, lets you
153
+ define custom settings for your CloudFront distribution. See the [gem's
154
+ documentation](https://github.com/laurilehmijoki/configure-s3-website) for more
155
+ info.
126
156
 
127
157
  ### The headless mode
128
158
 
@@ -139,7 +169,7 @@ Enable the headless mode by adding the `--headless` or `-h` argument after
139
169
  You can set HTTP redirects on your Jekyll S3 website by adding the following
140
170
  configuration into the `_jekyll_s3.yml` file:
141
171
 
142
- ´´´´yaml
172
+ ```yaml
143
173
  routing_rules:
144
174
  - condition:
145
175
  key_prefix_equals: blog/some_path
@@ -147,7 +177,11 @@ routing_rules:
147
177
  host_name: blog.example.com
148
178
  replace_key_prefix_with: some_new_path/
149
179
  http_redirect_code: 301
150
- ´´´´
180
+ ```
181
+
182
+ After adding the configuration, run the command `configure-s3-website --config
183
+ _jekyll_s3.yml` on your command-line interface. This will apply the routing
184
+ rules on your S3 bucket.
151
185
 
152
186
  For more information on configuring redirects, see the documentation of the
153
187
  [configure-s3-website](https://github.com/laurilehmijoki/configure-s3-website#configuring-redirects)
@@ -170,7 +204,7 @@ You can also use a basic `Hash` instead of a `_jekyll_s3.yml` file:
170
204
  config = {
171
205
  "s3_id" => YOUR_AWS_S3_ACCESS_KEY_ID,
172
206
  "s3_secret" => YOUR_AWS_S3_SECRET_ACCESS_KEY,
173
- "s3_bucket" => your.blog.bucket.com
207
+ "s3_bucket" => "your.blog.bucket.com"
174
208
  }
175
209
  in_headless = true
176
210
  Jekyll::S3::Uploader.run('/path/to/your/jekyll-site/_site/', config, in_headless)
@@ -223,6 +257,8 @@ Contributors (in alphabetical order)
223
257
  * Cory Kaufman-Schofield
224
258
  * Chris Kelly
225
259
  * Chris Moos
260
+ * David Michael Barr
261
+ * László Bácsi
226
262
  * Lauri Lehmijoki
227
263
  * Mason Turner
228
264
  * Michael Bleigh
data/changelog.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  This project uses [Semantic Versioning](http://semver.org).
4
4
 
5
+ ## 2.7.0
6
+
7
+ * Allow s3_id and s3_secret to be omitted
8
+
9
+ This enables deploying jekyll-s3 on EC2 instances with IAM roles. The AWS SDK
10
+ will automatically fetch temporary credentials.
11
+
5
12
  ## 2.6.0
6
13
 
7
14
  * Support configuring of redirects on the S3 website
data/jekyll-s3.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "jekyll-s3"
6
- s.version = "2.6.0"
6
+ s.version = "2.7.0"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Philippe Creux", "Lauri Lehmijoki"]
9
9
  s.email = ["pcreux@gmail.com", "lauri.lehmijoki@iki.fi"]
@@ -41,7 +41,7 @@ s3_bucket: your.blog.bucket.com
41
41
  end
42
42
  raise MalformedConfigurationFileError unless config
43
43
  raise MalformedConfigurationFileError if
44
- ['s3_id', 's3_secret', 's3_bucket'].any? { |key|
44
+ ['s3_bucket'].any? { |key|
45
45
  mandatory_config_value = config[key]
46
46
  mandatory_config_value.nil? || mandatory_config_value == ''
47
47
  }
@@ -4,9 +4,13 @@ module Jekyll
4
4
  def self.run(site_dir, config, in_headless_mode = false)
5
5
  puts "Deploying _site/* to #{config['s3_bucket']}"
6
6
 
7
- s3 = AWS::S3.new(:access_key_id => config['s3_id'],
8
- :secret_access_key => config['s3_secret'],
9
- :s3_endpoint => Endpoint.new(config['s3_endpoint']).hostname )
7
+ s3_config = { :s3_endpoint => Endpoint.new(config['s3_endpoint']).hostname }
8
+ s3_id, s3_secret = config['s3_id'], config['s3_secret']
9
+ unless s3_id.nil? || s3_id == '' || s3_secret.nil? || s3_secret == ''
10
+ s3_config.merge! :access_key_id => s3_id, :secret_access_key => s3_secret
11
+ end
12
+
13
+ s3 = AWS::S3.new(s3_config)
10
14
 
11
15
  new_files_count, changed_files_count, changed_files = upload_files(
12
16
  s3, config, site_dir
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-05-05 00:00:00.000000000 Z
13
+ date: 2013-05-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws-sdk
@@ -337,7 +337,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
337
337
  version: '0'
338
338
  segments:
339
339
  - 0
340
- hash: 1426117685170856027
340
+ hash: 4368343528403061082
341
341
  required_rubygems_version: !ruby/object:Gem::Requirement
342
342
  none: false
343
343
  requirements:
@@ -346,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
346
346
  version: '0'
347
347
  segments:
348
348
  - 0
349
- hash: 1426117685170856027
349
+ hash: 4368343528403061082
350
350
  requirements: []
351
351
  rubyforge_project:
352
352
  rubygems_version: 1.8.25