class Shred::Commands::S3
Public Instance Methods
create_bucket(name, region, cors: nil, files: nil)
click to toggle source
# File lib/shred/commands/s3.rb, line 42 def create_bucket(name, region, cors: nil, files: nil) s3 = AWS::S3.new(region: region) region ||= 'default' bucket = s3.buckets[name] if bucket.exists? console.say_ok("S3 bucket #{name} already exists in #{region} region") else bucket = s3.buckets.create(name) console.say_ok("Created S3 bucket #{name} in #{region} region") end if cors rules = cors.map do |id, rule_cfg| { allowed_methods: Array(rule_cfg['allowed_methods']), allowed_origins: Array(rule_cfg['allowed_origins']), allowed_headers: Array(rule_cfg['allowed_headers']), max_age_seconds: rule_cfg['max_age_seconds'], expose_headers: Array(rule_cfg['expose_headers']) } end bucket.cors.set(rules) console.say_ok("Set CORS config for bucket #{name}") end if files files.map do |id, file_cfg| path = interpolate_value(file_cfg['path']) key = interpolate_value(file_cfg['key']) acl = interpolate_value(file_cfg['acl']) bucket.objects[key].write(Pathname.new(path), acl: acl) console.say_ok("Uploaded file #{path} to bucket #{name} at #{key}") end end end
mkbucket(name, region = nil)
click to toggle source
# File lib/shred/commands/s3.rb, line 16 def mkbucket(name, region = nil) ::Dotenv.load create_bucket(name, region) end
mkbuckets()
click to toggle source
# File lib/shred/commands/s3.rb, line 28 def mkbuckets ::Dotenv.load cfg('buckets').each do |(key, bucket_cfg)| name = interpolate_value(bucket_cfg['name']) region = interpolate_value(bucket_cfg['region']) cors_cfg = bucket_cfg['cors'] files_cfg = bucket_cfg['files'] create_bucket(name, region, cors: cors_cfg, files: files_cfg) end end