Sha256: e18d9bd00fad2b12a1be0622aba9832e15a8f061d86bb7d9e148c3ec095f7561

Contents?: true

Size: 830 Bytes

Versions: 1

Compression:

Stored size: 830 Bytes

Contents

require "fog/aws"
require "open-uri"

class PgbackupsArchive::Storage

  def initialize(key, file)
    @key = key
    @file = file
  end

  def connection
    Fog::Storage.new({
      :provider              => "AWS",
      :aws_access_key_id     => ENV["PGBACKUPS_AWS_ACCESS_KEY_ID"],
      :aws_secret_access_key => ENV["PGBACKUPS_AWS_SECRET_ACCESS_KEY"],
      :region                => ENV["PGBACKUPS_REGION"],
      :persistent            => false
    })
  end

  def bucket
    connection.directories.get ENV["PGBACKUPS_BUCKET"]
  end

  def store
    options = {:key => @key, :body => @file, :public => false, :encryption => "AES256"}

    if ENV["PGBACKUPS_MULTIPART_CHUNK_SIZE"]
      options.merge!(:multipart_chunk_size => ENV["PGBACKUPS_MULTIPART_CHUNK_SIZE"].to_i)
    end

    bucket.files.create(options)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pgbackups-archive-1.1.0 lib/pgbackups-archive/storage.rb