Sha256: 77e220dd25b6aa6fd0ecdaf30a6b66667eeb5312388aafa8bcd3533c5089882f

Contents?: true

Size: 1.39 KB

Versions: 9

Compression:

Stored size: 1.39 KB

Contents

begin
  require 'fog'
rescue LoadError
  raise LoadError.new("Missing required 'fog'.  Please 'gem install fog' and require it in your application.")
end

module SitemapGenerator
  class S3Adapter

    def initialize(opts = {})
      @aws_access_key_id = opts[:aws_access_key_id] || ENV['AWS_ACCESS_KEY_ID']
      @aws_secret_access_key = opts[:aws_secret_access_key] || ENV['AWS_SECRET_ACCESS_KEY']
      @fog_provider = opts[:fog_provider] || ENV['FOG_PROVIDER']
      @fog_directory = opts[:fog_directory] || ENV['FOG_DIRECTORY']
      @fog_region = opts[:fog_region] || ENV['FOG_REGION']
      @fog_path_style = opts[:fog_path_style] || ENV['FOG_PATH_STYLE']
    end

    # Call with a SitemapLocation and string data
    def write(location, raw_data)
      SitemapGenerator::FileAdapter.new.write(location, raw_data)

      credentials = {
        :aws_access_key_id     => @aws_access_key_id,
        :aws_secret_access_key => @aws_secret_access_key,
        :provider              => @fog_provider,
      }
      credentials[:region] = @fog_region if @fog_region
      credentials[:path_style] = @fog_path_style if @fog_path_style

      storage   = Fog::Storage.new(credentials)
      directory = storage.directories.new(:key => @fog_directory)
      directory.files.create(
        :key    => location.path_in_public,
        :body   => File.open(location.path),
        :public => true
      )
    end

  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
ftbpro_sitemap_generator-5.0.8 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator_ftbpro-5.0.6 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator_ftbpro-5.0.5 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator_ftbpro-5.0.4 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.4 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.3 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.2 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.1 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.0 lib/sitemap_generator/adapters/s3_adapter.rb