class DZT::S3Storage
Constants
- DEFAULT_ACL
- DEFAULT_KEY
Public Class Methods
new(options = {})
click to toggle source
@param s3_acl: ACL to use for storing, defaults to 'public-read'. @param s3_bucket: Bucket to store tiles. @param s3_key: Key to prefix stored files. @param aws_id: AWS Id. @param aws_secret: AWS Secret.
# File lib/dzt/s3_storage.rb, line 12 def initialize(options = {}) @s3_acl = options[:s3_acl] || DEFAULT_ACL @s3_bucket = options[:s3_bucket] @s3_key = options[:s3_key] || DEFAULT_KEY @s3_id = options[:aws_id] @s3_secret = options[:aws_secret] end
Public Instance Methods
exists?()
click to toggle source
Currently does not supporting checking S3 fo overwritten files
# File lib/dzt/s3_storage.rb, line 32 def exists? false end
mkdir(_path)
click to toggle source
no-op
# File lib/dzt/s3_storage.rb, line 41 def mkdir(_path) end
s3()
click to toggle source
# File lib/dzt/s3_storage.rb, line 20 def s3 @s3 ||= begin require_fog! Fog::Storage.new( provider: 'AWS', aws_access_key_id: @s3_id, aws_secret_access_key: @s3_secret ) end end
storage_location(level)
click to toggle source
# File lib/dzt/s3_storage.rb, line 36 def storage_location(level) "#{@s3_key}/#{level}" end
write(file, dest, options = {})
click to toggle source
# File lib/dzt/s3_storage.rb, line 44 def write(file, dest, options = {}) quality = options[:quality] s3.put_object(@s3_bucket, dest, file.to_blob { @quality = quality if quality }, 'Content-Type' => file.mime_type, 'x-amz-acl' => @s3_acl ) end
Private Instance Methods
require_fog!()
click to toggle source
# File lib/dzt/s3_storage.rb, line 54 def require_fog! require 'fog/aws' rescue LoadError => e STDERR.puts 'Fog is required for storing data in S3, run `gem install fog-aws`.' raise e end