shred 0.0.7 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2532adcfcebdbbf16460113011a1f9c588cb4ed0
4
- data.tar.gz: ac598e765c07753e6f123b2956429c0b7dcee2ed
3
+ metadata.gz: 3ebc646e30059b1b213e40852da3996c35fc4ea0
4
+ data.tar.gz: 9db8cfd8a2899f6084bc4d5796f8de6772dc6ff7
5
5
  SHA512:
6
- metadata.gz: 3235063f10f219ecff818ef282f43226a98b92b8b902ff8f030df37cf38d356d080b07cb383d9b10306854aed426db1f0da24cfc3ae5a1d3d00a2a1a8680b16a
7
- data.tar.gz: 701ee537476cd35d35fd91fcfe84b596575b757dc7ece96d83de8beb3340cd4a19cf75dc7cdfe01bc0c75c814866651656cd988685e012ea00cecfa79e2b7e56
6
+ metadata.gz: 77cc7cd9d43dcdf9981567c0156ab8b593355bc1a9218ed11194189c45df8875b566ae4659f9eebfd00f2c9281029385770231b8b14b53c4000033569099fa2d
7
+ data.tar.gz: f74ceb2db0ff64d82c6c82f563c1cf516a5aef0b9171ad998ad34df4946dd3bd1fc4f45814f175f577da87f0d7168d3c67e9ae55e5995fb6291dc13fe0bd9997
@@ -31,21 +31,46 @@ module Shred
31
31
  cfg('buckets').each do |(key, bucket_cfg)|
32
32
  name = interpolate_value(bucket_cfg['name'])
33
33
  region = interpolate_value(bucket_cfg['region'])
34
+ cors_cfg = bucket_cfg['cors']
35
+ files_cfg = bucket_cfg['files']
34
36
 
35
- create_bucket(name, region)
37
+ create_bucket(name, region, cors: cors_cfg, files: files_cfg)
36
38
  end
37
39
  end
38
40
 
39
41
  no_commands do
40
- def create_bucket(name, region)
42
+ def create_bucket(name, region, cors: nil, files: nil)
41
43
  s3 = AWS::S3.new(region: region)
42
44
  region ||= 'default'
43
- if s3.buckets[name].exists?
45
+ bucket = s3.buckets[name]
46
+ if bucket.exists?
44
47
  console.say_ok("S3 bucket #{name} already exists in #{region} region")
45
48
  else
46
- s3.buckets.create(name)
49
+ bucket = s3.buckets.create(name)
47
50
  console.say_ok("Created S3 bucket #{name} in #{region} region")
48
51
  end
52
+ if cors
53
+ rules = cors.map do |id, rule_cfg|
54
+ {
55
+ allowed_methods: Array(rule_cfg['allowed_methods']),
56
+ allowed_origins: Array(rule_cfg['allowed_origins']),
57
+ allowed_headers: Array(rule_cfg['allowed_headers']),
58
+ max_age_seconds: rule_cfg['max_age_seconds'],
59
+ expose_headers: Array(rule_cfg['expose_headers'])
60
+ }
61
+ end
62
+ bucket.cors.set(rules)
63
+ console.say_ok("Set CORS config for bucket #{name}")
64
+ end
65
+ if files
66
+ files.map do |id, file_cfg|
67
+ path = interpolate_value(file_cfg['path'])
68
+ key = interpolate_value(file_cfg['key'])
69
+ acl = interpolate_value(file_cfg['acl'])
70
+ bucket.objects[key].write(Pathname.new(path), acl: acl)
71
+ console.say_ok("Uploaded file #{path} to bucket #{name} at #{key}")
72
+ end
73
+ end
49
74
  end
50
75
  end
51
76
  end
data/lib/shred/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Shred
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
data/lib/shred.yml.tt CHANGED
@@ -90,6 +90,18 @@ commands:
90
90
  default:
91
91
  name: '{env:AWS_S3_BUCKET}'
92
92
  region: '{env:AWS_S3_REGION}'
93
+ cors:
94
+ local:
95
+ allowed_methods:
96
+ - POST
97
+ - PUT
98
+ allowed_origins: 'http://*.example.com'
99
+ allowed_headers: '*'
100
+ files:
101
+ crossdomain:
102
+ path: etc/crossdomain.xml
103
+ key: 'crossdomain.xml'
104
+ acl: public_read
93
105
  setup:
94
106
  platform_deps: install
95
107
  services: start
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shred
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian