Sha256: 3dd06fe40b9670740bb5610f200b42a9c26cac2a58df90c5ddf9ec7651a2471f

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 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']
    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

      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

4 entries across 4 versions & 1 rubygems

Version Path
sitemap_generator-5.0.0.beta1 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-5.0.0.beta lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-4.3.1 lib/sitemap_generator/adapters/s3_adapter.rb
sitemap_generator-4.3.0 lib/sitemap_generator/adapters/s3_adapter.rb