s3_website 2.13.0 → 2.14.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.
- checksums.yaml +4 -4
 - data/.travis.yml +0 -2
 - data/README.md +19 -0
 - data/additional-docs/setting-up-aws-credentials.md +1 -1
 - data/changelog.md +6 -0
 - data/lib/s3_website/version.rb +1 -1
 - data/resources/configuration_file_template.yml +2 -0
 - data/resources/s3_website.jar.md5 +1 -1
 - data/src/main/scala/s3/website/CloudFront.scala +5 -2
 - data/src/main/scala/s3/website/model/Config.scala +18 -17
 - data/src/main/scala/s3/website/model/Site.scala +2 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ed60d795c8498eaa376cf3db07a1d150e664fb94
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: eb092f1524a34883201452b5ed013a864901d866
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 08ec5fdda103891fef1dd85b5319cd5572fd021048cceb1aae4fee438800462e072b6bcac45408fa8110f8dc59845cc98ed9eaa42a0229d0eec2ce8936dcd806
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: aab6bd5d66dafc38a200756c26a5da9e5334a35ec26f2947c1db1f6fc08dd91ed3054afc86057e126136adb63da34d673ee9dbe05da20f23ffeb06812909e3d7
         
     | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -277,6 +277,16 @@ cloudfront_distribution_config: 
     | 
|
| 
       277 
277 
     | 
    
         
             
            Once you've saved the configuration into `s3_website.yml`, you can apply them by
         
     | 
| 
       278 
278 
     | 
    
         
             
            running `s3_website cfg apply`.
         
     | 
| 
       279 
279 
     | 
    
         | 
| 
      
 280 
     | 
    
         
            +
            #### Invalidating all CloudFront resources (wildcard invalidation)
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
            The following setting is recommended for most users:
         
     | 
| 
      
 283 
     | 
    
         
            +
             
     | 
| 
      
 284 
     | 
    
         
            +
            ```yaml
         
     | 
| 
      
 285 
     | 
    
         
            +
            cloudfront_wildcard_invalidation: true
         
     | 
| 
      
 286 
     | 
    
         
            +
            ```
         
     | 
| 
      
 287 
     | 
    
         
            +
             
     | 
| 
      
 288 
     | 
    
         
            +
            Over time, it can reduce your AWS bill significantly. For more information, see <http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html>.
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
       280 
290 
     | 
    
         
             
            #### Invalidating root resources instead of index.htmls
         
     | 
| 
       281 
291 
     | 
    
         | 
| 
       282 
292 
     | 
    
         
             
            By default, `s3_website push` calls the CloudFront invalidation API with the
         
     | 
| 
         @@ -476,6 +486,11 @@ If you are not sure how to test your pull request, you can ask the [gem owners 
     | 
|
| 
       476 
486 
     | 
    
         
             
            However, by including proper tests, you increase the chances of your pull
         
     | 
| 
       477 
487 
     | 
    
         
             
            request being incorporated into future releases.
         
     | 
| 
       478 
488 
     | 
    
         | 
| 
      
 489 
     | 
    
         
            +
            ## Alternatives
         
     | 
| 
      
 490 
     | 
    
         
            +
             
     | 
| 
      
 491 
     | 
    
         
            +
            * <https://pages.github.com/>
         
     | 
| 
      
 492 
     | 
    
         
            +
            * <https://pages.gitlab.io/>
         
     | 
| 
      
 493 
     | 
    
         
            +
             
     | 
| 
       479 
494 
     | 
    
         
             
            ## License
         
     | 
| 
       480 
495 
     | 
    
         | 
| 
       481 
496 
     | 
    
         
             
            MIT. See the LICENSE file for more information.
         
     | 
| 
         @@ -524,6 +539,10 @@ Contributors (in alphabetical order) 
     | 
|
| 
       524 
539 
     | 
    
         
             
            * Trevor Fitzgerald
         
     | 
| 
       525 
540 
     | 
    
         
             
            * Zee Spencer
         
     | 
| 
       526 
541 
     | 
    
         | 
| 
      
 542 
     | 
    
         
            +
            ## Community articles
         
     | 
| 
      
 543 
     | 
    
         
            +
             
     | 
| 
      
 544 
     | 
    
         
            +
            * [Deploying websites to FTP or Amazon S3 with BitBucket Pipelines](https://www.savjee.be/2016/06/Deploying-website-to-ftp-or-amazon-s3-with-BitBucket-Pipelines/)
         
     | 
| 
      
 545 
     | 
    
         
            +
             
     | 
| 
       527 
546 
     | 
    
         
             
            ## Donations
         
     | 
| 
       528 
547 
     | 
    
         | 
| 
       529 
548 
     | 
    
         
             
            [](https://www.gittip.com/laurilehmijoki/)
         
     | 
    
        data/changelog.md
    CHANGED
    
    | 
         @@ -2,6 +2,12 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            This project uses [Semantic Versioning](http://semver.org).
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            ## 2.14.0
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * Add support for CloudFront wildcard invalidations
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              Introduced a new setting, `cloudfront_wildcard_invalidation: (true|false)`
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       5 
11 
     | 
    
         
             
            ## 2.13.0
         
     | 
| 
       6 
12 
     | 
    
         | 
| 
       7 
13 
     | 
    
         
             
            * Add support for `dnf`, a Linux package manager
         
     | 
    
        data/lib/s3_website/version.rb
    CHANGED
    
    
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            6736177c885c454c20caadf2396980f0
         
     | 
| 
         @@ -68,6 +68,10 @@ object CloudFront { 
     | 
|
| 
       68 
68 
     | 
    
         
             
              def awsCloudFrontClient(config: Config) = new AmazonCloudFrontClient(awsCredentials(config))
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
70 
     | 
    
         
             
              def toInvalidationBatches(pushSuccessReports: Seq[PushSuccessReport])(implicit config: Config): Seq[InvalidationBatch] = {
         
     | 
| 
      
 71 
     | 
    
         
            +
                def callerReference = s"s3_website gem ${System.currentTimeMillis()}"
         
     | 
| 
      
 72 
     | 
    
         
            +
                if (config.cloudfront_wildcard_invalidation.contains(true) && pushSuccessReports.exists(needsInvalidation)) {
         
     | 
| 
      
 73 
     | 
    
         
            +
                  return Seq(new InvalidationBatch withPaths(new Paths withItems "/*" withQuantity 1) withCallerReference callerReference)
         
     | 
| 
      
 74 
     | 
    
         
            +
                }
         
     | 
| 
       71 
75 
     | 
    
         
             
                def defaultPath(paths: Seq[String]): Option[String] = {
         
     | 
| 
       72 
76 
     | 
    
         
             
                  // This is how we support the Default Root Object @ CloudFront (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html)
         
     | 
| 
       73 
77 
     | 
    
         
             
                  // We could do this more accurately by fetching the distribution config (http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetConfig.html)
         
     | 
| 
         @@ -102,8 +106,7 @@ object CloudFront { 
     | 
|
| 
       102 
106 
     | 
    
         
             
                  .grouped(1000) // CloudFront supports max 1000 invalidations in one request (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#InvalidationLimits)
         
     | 
| 
       103 
107 
     | 
    
         
             
                  .map { batchKeys =>
         
     | 
| 
       104 
108 
     | 
    
         
             
                    new InvalidationBatch() withPaths
         
     | 
| 
       105 
     | 
    
         
            -
                      (new Paths() withItems batchKeys withQuantity batchKeys.size) withCallerReference
         
     | 
| 
       106 
     | 
    
         
            -
                      s"s3_website gem ${System.currentTimeMillis()}"
         
     | 
| 
      
 109 
     | 
    
         
            +
                      (new Paths() withItems batchKeys withQuantity batchKeys.size) withCallerReference callerReference
         
     | 
| 
       107 
110 
     | 
    
         
             
                  }
         
     | 
| 
       108 
111 
     | 
    
         
             
                  .toSeq
         
     | 
| 
       109 
112 
     | 
    
         
             
              }
         
     | 
| 
         @@ -11,23 +11,24 @@ import s3.website._ 
     | 
|
| 
       11 
11 
     | 
    
         
             
            import com.amazonaws.auth.{AWSCredentialsProvider, BasicAWSCredentials, DefaultAWSCredentialsProviderChain}
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            case class Config(
         
     | 
| 
       14 
     | 
    
         
            -
              s3_id: 
     | 
| 
       15 
     | 
    
         
            -
              s3_secret: 
     | 
| 
       16 
     | 
    
         
            -
              s3_bucket: 
     | 
| 
       17 
     | 
    
         
            -
              s3_endpoint: 
     | 
| 
       18 
     | 
    
         
            -
              site: 
     | 
| 
       19 
     | 
    
         
            -
              max_age: 
     | 
| 
       20 
     | 
    
         
            -
              cache_control: 
     | 
| 
       21 
     | 
    
         
            -
              gzip: 
     | 
| 
       22 
     | 
    
         
            -
              gzip_zopfli: 
     | 
| 
       23 
     | 
    
         
            -
              s3_key_prefix: 
     | 
| 
       24 
     | 
    
         
            -
              ignore_on_server: 
     | 
| 
       25 
     | 
    
         
            -
              exclude_from_upload: 
     | 
| 
       26 
     | 
    
         
            -
              s3_reduced_redundancy: 
     | 
| 
       27 
     | 
    
         
            -
              cloudfront_distribution_id: 
     | 
| 
       28 
     | 
    
         
            -
              cloudfront_invalidate_root: 
     | 
| 
       29 
     | 
    
         
            -
              redirects: 
     | 
| 
       30 
     | 
    
         
            -
              concurrency_level: 
     | 
| 
      
 14 
     | 
    
         
            +
              s3_id:                                  Option[String], // If undefined, use IAM Roles (http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html)
         
     | 
| 
      
 15 
     | 
    
         
            +
              s3_secret:                              Option[String], // If undefined, use IAM Roles (http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html)
         
     | 
| 
      
 16 
     | 
    
         
            +
              s3_bucket:                              String,
         
     | 
| 
      
 17 
     | 
    
         
            +
              s3_endpoint:                            S3Endpoint,
         
     | 
| 
      
 18 
     | 
    
         
            +
              site:                                   Option[String],
         
     | 
| 
      
 19 
     | 
    
         
            +
              max_age:                                Option[Either[Int, S3KeyGlob[Int]]],
         
     | 
| 
      
 20 
     | 
    
         
            +
              cache_control:                          Option[Either[String, S3KeyGlob[String]]],
         
     | 
| 
      
 21 
     | 
    
         
            +
              gzip:                                   Option[Either[Boolean, Seq[String]]],
         
     | 
| 
      
 22 
     | 
    
         
            +
              gzip_zopfli:                            Option[Boolean],
         
     | 
| 
      
 23 
     | 
    
         
            +
              s3_key_prefix:                          Option[String],
         
     | 
| 
      
 24 
     | 
    
         
            +
              ignore_on_server:                       Option[S3KeyRegexes],
         
     | 
| 
      
 25 
     | 
    
         
            +
              exclude_from_upload:                    Option[S3KeyRegexes],
         
     | 
| 
      
 26 
     | 
    
         
            +
              s3_reduced_redundancy:                  Option[Boolean],
         
     | 
| 
      
 27 
     | 
    
         
            +
              cloudfront_distribution_id:             Option[String],
         
     | 
| 
      
 28 
     | 
    
         
            +
              cloudfront_invalidate_root:             Option[Boolean],
         
     | 
| 
      
 29 
     | 
    
         
            +
              redirects:                              Option[Map[S3Key, String]],
         
     | 
| 
      
 30 
     | 
    
         
            +
              concurrency_level:                      Int,
         
     | 
| 
      
 31 
     | 
    
         
            +
              cloudfront_wildcard_invalidation:       Option[Boolean],
         
     | 
| 
       31 
32 
     | 
    
         
             
              treat_zero_length_objects_as_redirects: Option[Boolean]
         
     | 
| 
       32 
33 
     | 
    
         
             
            )
         
     | 
| 
       33 
34 
     | 
    
         | 
| 
         @@ -50,6 +50,7 @@ object Site { 
     | 
|
| 
       50 
50 
     | 
    
         
             
                      cloudfront_distribution_id <- loadOptionalString("cloudfront_distribution_id").right
         
     | 
| 
       51 
51 
     | 
    
         
             
                      cloudfront_invalidate_root <- loadOptionalBoolean("cloudfront_invalidate_root").right
         
     | 
| 
       52 
52 
     | 
    
         
             
                      concurrency_level <- loadOptionalInt("concurrency_level").right
         
     | 
| 
      
 53 
     | 
    
         
            +
                      cloudfront_wildcard_invalidation <- loadOptionalBoolean("cloudfront_wildcard_invalidation").right
         
     | 
| 
       53 
54 
     | 
    
         
             
                      redirects <- loadRedirects(s3_key_prefix).right
         
     | 
| 
       54 
55 
     | 
    
         
             
                      treat_zero_length_objects_as_redirects <- loadOptionalBoolean("treat_zero_length_objects_as_redirects").right
         
     | 
| 
       55 
56 
     | 
    
         
             
                    } yield {
         
     | 
| 
         @@ -78,6 +79,7 @@ object Site { 
     | 
|
| 
       78 
79 
     | 
    
         
             
                        cloudfront_invalidate_root,
         
     | 
| 
       79 
80 
     | 
    
         
             
                        redirects,
         
     | 
| 
       80 
81 
     | 
    
         
             
                        concurrency_level.fold(20)(_ max 20),
         
     | 
| 
      
 82 
     | 
    
         
            +
                        cloudfront_wildcard_invalidation,
         
     | 
| 
       81 
83 
     | 
    
         
             
                        treat_zero_length_objects_as_redirects
         
     | 
| 
       82 
84 
     | 
    
         
             
                      )
         
     | 
| 
       83 
85 
     | 
    
         
             
                    }
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: s3_website
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.14.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Lauri Lehmijoki
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-06-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: thor
         
     |