s3_website 1.0.0 → 1.0.1
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.
- checksums.yaml +7 -0
- data/README.md +30 -18
- data/changelog.md +4 -0
- data/lib/s3_website/parallelism.rb +12 -6
- data/s3_website.gemspec +1 -1
- data/spec/lib/parallelism_spec.rb +19 -0
- metadata +16 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 738dbf4da599ae01973619d033c4f6810d2f9378
|
4
|
+
data.tar.gz: d3368566d619e4ee1352ac67683283f76045968a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e17da88a98541bc84052d59214e47bff501d0d0bfcb1e8acdb22609cba320b9c3f65335e539ac3bc886dbacf576a7ae107a21530cac9581bb4a95ba4495edb16
|
7
|
+
data.tar.gz: 5bef4373d9f2466728d6d6e1b56fc34a083fd95b74e3a02871c9ac72f72924be3df10b8bdefc900f376bc36903f298df84d4c572cc6f1910e1ee40a1a32f0d96
|
data/README.md
CHANGED
@@ -7,38 +7,46 @@
|
|
7
7
|
|
8
8
|
* Create and configure an S3 website for you
|
9
9
|
* Upload your static website to AWS S3
|
10
|
+
* Jekyll and Nanoc are automatically supported
|
10
11
|
* Help you use AWS Cloudfront to distribute your website
|
11
12
|
* Improve page speed with HTTP cache control and gzipping
|
12
13
|
* Set HTTP redirects for your website
|
13
14
|
* (for other features, see the documentation below)
|
14
15
|
|
15
|
-
`s3_website` automatically supports [Jekyll](http://jekyllrb.com) and
|
16
|
-
[Nanoc](http://nanoc.ws) by recognising their output directories (*_site* for
|
17
|
-
Jekyll and *public/output* for Nanoc). If your website resides in some other
|
18
|
-
directory, you can point the directory to `s3_website` with a parameter. See
|
19
|
-
`s3_website help push` for more info.
|
20
|
-
|
21
16
|
## Install
|
22
17
|
|
23
|
-
This project is still on beta level. Expect backward incompatible changes.
|
24
|
-
|
25
18
|
gem install s3_website
|
26
19
|
|
27
20
|
## Usage
|
28
21
|
|
29
22
|
Here's how you can get started:
|
30
23
|
|
24
|
+
* In [AWS IAM](https://console.aws.amazon.com/iam), create API credentials that have sufficient permissions to S3
|
31
25
|
* Go to your website directory
|
32
|
-
* Run `s3_website cfg create`.
|
33
|
-
*
|
26
|
+
* Run `s3_website cfg create`. This generates a configuration file called `s3_website.yml`.
|
27
|
+
* Put your AWS credentials and the S3 bucket name into the file
|
34
28
|
* Run `s3_website cfg apply`. This will configure your bucket to function as an
|
35
29
|
S3 website. If the bucket does not exist, the command will create it for you.
|
36
30
|
* Run `s3_website push` to push your website to S3. Congratulations! You are live.
|
37
31
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
32
|
+
### For Jekyll users
|
33
|
+
|
34
|
+
Run the `s3_website cfg create` in the root directory of your Jekyll project.
|
35
|
+
`s3_website` will automatically look for the site output in the *_site*
|
36
|
+
directory.
|
37
|
+
|
38
|
+
### For Nanoc users
|
39
|
+
|
40
|
+
Run the `s3_website cfg create` in the root directory of your Nanoc project.
|
41
|
+
`s3_website` will automatically look for the site output in the *public/output*
|
42
|
+
directory.
|
43
|
+
|
44
|
+
### For others
|
45
|
+
|
46
|
+
It's a good idea to store the `s3_website.yml` file in your project's root.
|
47
|
+
Let's say the contents you wish to upload to your S3 website bucket are in
|
48
|
+
*my_website_output*. You can upload the contents of that directory with
|
49
|
+
`s3_website push --site my_website_output`.
|
42
50
|
|
43
51
|
### Using environment variables
|
44
52
|
|
@@ -68,8 +76,14 @@ you can omit the `s3_id` and `s3_secret` keys in the config file.)
|
|
68
76
|
bucket
|
69
77
|
* Let the power users benefit from advanced S3 website features such as
|
70
78
|
redirects, Cache-Control headers and gzip support
|
79
|
+
* Be as fast as possible. Do in parallel all that can be done in parallel.
|
71
80
|
* Maintain 90% backward compatibility with the jekyll-s3 gem
|
72
81
|
|
82
|
+
`s3_website` attempts to be a command-line interface tool that is easy to
|
83
|
+
understand and use. For example, `s3_website --help` should print you all the
|
84
|
+
things it can perform. Please create an issue if you think the tool is
|
85
|
+
incomprehensible or inconsistent.
|
86
|
+
|
73
87
|
## Additional features
|
74
88
|
|
75
89
|
### Cache Control
|
@@ -291,8 +305,6 @@ s3_website uses [Semantic Versioning](http://semver.org).
|
|
291
305
|
|
292
306
|
* Install bundler and run `bundle install`
|
293
307
|
* Run all tests by invoking `rake test`
|
294
|
-
* Run the integration tests by running `bundle exec cucumber`
|
295
|
-
* Run the unit tests by running `bundle exec rspec spec/lib/*.rb`
|
296
308
|
|
297
309
|
### Contributing
|
298
310
|
|
@@ -320,8 +332,8 @@ MIT. See the LICENSE file for more information.
|
|
320
332
|
|
321
333
|
## Contributors
|
322
334
|
|
323
|
-
This gem is created by
|
324
|
-
|
335
|
+
This gem is created by Lauri Lehmijoki. Without the valuable work of [Philippe
|
336
|
+
Creux](https://github.com/pcreux) on
|
325
337
|
[jekyll-s3](https://github.com/laurilehmijoki/jekyll-s3), this project would not
|
326
338
|
exist.
|
327
339
|
|
data/changelog.md
CHANGED
@@ -6,13 +6,19 @@ module S3Website
|
|
6
6
|
operation.call item
|
7
7
|
end
|
8
8
|
else
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
items.each_slice(DEFAULT_CONCURRENCY_LEVEL) { |items|
|
10
|
+
threads = items.map do |item|
|
11
|
+
Thread.new(item) { |item|
|
12
|
+
operation.call item
|
13
|
+
}
|
14
|
+
end
|
15
|
+
threads.each(&:join)
|
16
|
+
}
|
15
17
|
end
|
16
18
|
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
DEFAULT_CONCURRENCY_LEVEL = 100
|
17
23
|
end
|
18
24
|
end
|
data/s3_website.gemspec
CHANGED
@@ -40,4 +40,23 @@ describe S3Website::Parallelism do
|
|
40
40
|
ints.should_not eq(after_processing) # Parallel processing introduces non-determinism
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
context 'limiting parallelism' do
|
45
|
+
before(:each) {
|
46
|
+
ints = (0..199).to_a
|
47
|
+
@after_processing = []
|
48
|
+
S3Website::Parallelism.each_in_parallel_or_sequentially(ints) { |int|
|
49
|
+
@after_processing << int
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
it "does at most #{S3Website::Parallelism::DEFAULT_CONCURRENCY_LEVEL} operations in parallel" do
|
54
|
+
@after_processing.slice(0, 99).all? do |int|
|
55
|
+
int <= 99
|
56
|
+
end.should be true
|
57
|
+
@after_processing.slice(100, 199).all? do |int|
|
58
|
+
int >= 100 and int <= 199
|
59
|
+
end.should be true
|
60
|
+
end
|
61
|
+
end
|
43
62
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lauri Lehmijoki
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: aws-sdk
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: filey-diff
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: simple-cloudfront-invalidator
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: erubis
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: mime-types
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - '='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - '='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: thor
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - '='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - '='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: configure-s3-website
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,55 +111,48 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rspec
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: rspec-expectations
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - '>='
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - '>='
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: cucumber
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: aruba
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ~>
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ~>
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,23 +167,20 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: rake
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: vcr
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - ~>
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - ~>
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -222,7 +195,6 @@ dependencies:
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: webmock
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - ~>
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,12 +202,11 @@ dependencies:
|
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - ~>
|
236
207
|
- !ruby/object:Gem::Version
|
237
208
|
version: 1.8.0
|
238
|
-
description:
|
209
|
+
description: "\n Sync website files, set redirects, use HTTP performance optimisations,
|
239
210
|
deliver via\n CloudFront.\n "
|
240
211
|
email:
|
241
212
|
- lauri.lehmijoki@iki.fi
|
@@ -358,33 +329,26 @@ files:
|
|
358
329
|
- spec/spec_helper.rb
|
359
330
|
homepage: https://github.com/laurilehmijoki/s3_website
|
360
331
|
licenses: []
|
332
|
+
metadata: {}
|
361
333
|
post_install_message:
|
362
334
|
rdoc_options: []
|
363
335
|
require_paths:
|
364
336
|
- lib
|
365
337
|
required_ruby_version: !ruby/object:Gem::Requirement
|
366
|
-
none: false
|
367
338
|
requirements:
|
368
|
-
- -
|
339
|
+
- - '>='
|
369
340
|
- !ruby/object:Gem::Version
|
370
341
|
version: '0'
|
371
|
-
segments:
|
372
|
-
- 0
|
373
|
-
hash: 2083958356287664166
|
374
342
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
375
|
-
none: false
|
376
343
|
requirements:
|
377
|
-
- -
|
344
|
+
- - '>='
|
378
345
|
- !ruby/object:Gem::Version
|
379
346
|
version: '0'
|
380
|
-
segments:
|
381
|
-
- 0
|
382
|
-
hash: 2083958356287664166
|
383
347
|
requirements: []
|
384
348
|
rubyforge_project:
|
385
|
-
rubygems_version:
|
349
|
+
rubygems_version: 2.0.3
|
386
350
|
signing_key:
|
387
|
-
specification_version:
|
351
|
+
specification_version: 4
|
388
352
|
summary: Manage your S3 website
|
389
353
|
test_files:
|
390
354
|
- features/as-library.feature
|