This project uses Semantic Versioning.
Support for session tokens
The CloudFront client now uses the official AWS SDK. If your s3_website.yml
file contains the cloudfront_distribution_config
setting, you might need to modify
the it. The modifications should be rather straightforward, just follow the
instructions.
In other words, if you don't use CloudFront, upgrading to 3.0.0 should not result in any problems.
- Add command
s3_website install
- Support all AWS regions
-
Add new setting
content_type
See laurilehmijoki#232 for discussion
-
Fix mime type of an already-gzipped .json file
-
Apply correct mime type on already-gzipped files
See laurilehmijoki#229 (comment) for discussion
-
Do not gzip a file that is already gzipped
See laurilehmijoki#229 for discussion
-
Add support for CloudFront wildcard invalidations
Introduced a new setting,
cloudfront_wildcard_invalidation: (true|false)
- Add support for
dnf
, a Linux package manager
- Merge laurilehmijoki#190
- Fix broken build
- Automatically detect Middleman generated websites
- A new fix based on laurilehmijoki#181 (comment)
-
Prevent runaway recursion in file listing
See laurilehmijoki#181 for discussion
- Add the
s3_key_prefix
setting
- Support glob hashes in
cache_control
- Add setting
cache_control
-
Detect changed file even though the file has the same contents with another file on the S3 bucket
See laurilehmijoki#156 for discussion.
- URL encode (ä|ö|ü) in invalidation path
-
URL encode ' in invalidation path
See laurilehmijoki#63 for discussion.
-
Accept ' in
exclude_from_upload
andignore_on_server
-
Fix bug where the setting
cloudfront_invalidate_root: true
resulted in a CloudFront invalidation even if there were no changes to push.See laurilehmijoki#149 for discussion.
-
Change CloudFront
OriginProtocolPolicy
tohttp-only
See laurilehmijoki#152 for discussion.
- Automatically gzip
.ico
files, ifgzip: true
-
Null-check the result of File.listFiles
See laurilehmijoki#145 for discussion.
- Remove superfluous dot from error message
-
Show a helpful error message if the configured site is missing
See laurilehmijoki#144 for discussion.
-
Support valid URI characters in max_age glob
See laurilehmijoki#140 for discussion.
-
Fix Windows issue
See laurilehmijoki#105 for discussion.
-
Loosen dependency requirements
See laurilehmijoki#135 for discussion.
-
Add setting
treat_zero_length_objects_as_redirects
Before,
s3_website push
always uploaded one zero-length object for each configured redirect. From now on, you can instruct s3_website to treat zero-length S3 objects as existing redirects. If you have a large amount of redirects on your site, you may find that this feature decreases the duration ofs3_website push
.See laurilehmijoki#132 for discussion.
-
Always invalidate the object /index.html if the setting
cloudfront_invalidate_root
is onSee laurilehmijoki#130 for discussion
- Support
--config-dir
incfg apply
- Print Would have updated|redirected|created when running with
--dry-run
-
Add
push --force
optionWhen the user pushes with force, s3_website skips the diff. This is helpful for the users who wish to update the S3 object metadata.
-
Add
ignore_on_server: _DELETE_NOTHING_ON_THE_S3_BUCKET_
for the sake of convenienceSee laurilehmijoki#121 for discussion.
- Add Windows support
- The command
s3_website cfg apply
now supports--headless
and--autocreate-cloudfront-dist
-
Specify the location of the website in the s3_website.yml file
Just add the setting
site: path-to-your-website
into the file. -
Fix Nanoc auto detection
Previously, a website in public/output was not automatically detected.
-
Support non-US-ASCII files when using
ignore_on_server
Fixes laurilehmijoki#102
-
Support non-US-ASCII files when using
max_age
Fixes laurilehmijoki#102
-
Hide false AWS SDK alarms
Fixes laurilehmijoki#104
-
Print JVM stack trace on error and
--verbose
This eases debugging
-
Exit with status 1 when encountering an unrecognised CLI option
Fixes laurilehmijoki#103
-
Fix documentation for the
--config-dir
optionThe
--config_dir
option has changed to--config-dir
in version 2 of this gem.
- Remove warning on Ruby 1.8
- Separate development and production code more clearly in the s3_website executable
- Remove unused code in the s3_website executable
-
Remove local db
It turned out to be too complex to maintain
- Automatically add slash to redirects if needed
- Target JVM 1.6 in build.sbt
- Fix reason-for-upload message
- Fix boolean logic in reason-for-upload
- Show a more informative message if the jar file is corrupted.
- Verify that the s3_website.jar is not corrupted. Download it again, if it is.
- Show the upload reason when calling
push --verbose
- Rename binary s3_website_monadic to s3_website
-
Faster uploads for extra large sites
Use proper multithreading with JVM threads.
-
Simulate deployments with
push --dry-run
-
Support CloudFront invalidations when the site contains over 3000 files
-
Display transferred bytes
-
Display upload speed
-
push --verbose
switch
-
Fault tolerance – do not crash if one of the uploads fails
Before, the push command crashed if something unexpected happened. From now on, s3_website will run all the operations it can, and report errors in the end.
-
The
push
command is now written in ScalaThis means that you need Java 1.6 or above to run the command
s3_website push
.
-
extensionless_mime_type
s3_website now relies on Apache Tika to infer the mime type.
-
the
--headless
switch on the command-lines3_website always deletes the files that are on the S3 bucket but not on the local file system. Use the settings
ignore_on_server
andexclude_from_upload
to control the retained files. -
You can no longer use this gem as a Ruby library. You can migrate by calling the
s3_website push --site=x --config-dir=y
system command from your Ruby code. -
gzip_zopfli: true
At the time of writing, there does not exist a stable zopfli implementation for Java.
- The option
--config_dir
has changed to--config-dir
- Do not push the .env file
- Add support for (dotenv)[https://github.com/bkeepers/dotenv]
- Remove a test setting from Gemfile
-
Improve significantly the performance of the push command.
See laurilehmijoki#88 for more info.
- Fix issue laurilehmijoki#83
-
Fix Digest::Digest deprecation warn on Ruby 2.1.0
This warning did appear then one used the
cfg create
orcfg apply
commands.
- This release contains no code changes (the indended change is in the 1.7.3 release)
- Do not override ERB when adding CloudFront dist
- Add zopfli compression support
- Depend on any 1-series version of the aws-sdk gem
- Fix bug laurilehmijoki#63
- Loosen the dependency spec of mime-types (#70)
- Fix bug laurilehmijoki#38
- Fix Digest::Digest deprecation warn on Ruby 2.1.0
- Fix content-type problem (laurilehmijoki#66)
- Support the eu-west-1 location constraint for the commands
cfg apply
andcfg create
- Mark all text documents as UTF-8 encoded
- In case of error, exit with status 1
-
Add systematic error handling
Fixes issue laurilehmijoki#52.
- Invalidate a deleted file on CloudFront
- Fix issue laurilehmijoki#54
- Fix issue laurilehmijoki#30
- Add support for excluding files from upload
- s3_website.yml now supports
exclude_from_upload
- Support multiple values on the
ignore_on_server
setting
- Add support for specifying the MIME type for extensionless files
- If max-age=0, set
Cache-Control: no-cache, max-age=0
- Add support for eu-west-1 as a location constraint
-
Decrease the default concurrency level to 3
See laurilehmijoki#8 (comment) for discussion.
- Fix
s3_website cfg apply
for CloudFront setup (#33)
-
Fix diff for Windows users
See laurilehmijoki#8 (comment) for discussion.
- Add setting
cloudfront_invalidate_root
- Move blacklist filtering into a better place
- Print to stdout the initial state of the diff progress indicator
- Show a progress indicator when calculating diff
- Use
print
instead ofputs
when printing to stdout in a concurrent context
- Use the
--config_dir
CLI option to specify the directory from where to read thes3_website.yml
config file
- Mention the MIT license in the gemspec file
- Mention the new
concurrency_level
setting in the sample config file
- Add possibility to define the concurrency level in s3_website.yml
- Reject blacklisted files in a more appropriate place
- Never upload the file s3_website.yml
- Set default concurrency level to 100. Related to issue #6.
- Make 0.4.0 the version 1.0.0
- Include the available configs in the sample s3_website.yml file
- Add Nanoc support
- Remove Gemfile.lock
- Rename gemspec file
- Add command
s3_website cfg apply
- First version