class DbBlaster::S3Publisher
Pushes records to S3
Public Instance Methods
client()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 40 def client @client ||= Aws::S3::Client.new(region: DbBlaster.configuration.aws_region, credentials: Aws::Credentials.new(DbBlaster.configuration.aws_access_key, DbBlaster.configuration.aws_access_secret)) end
content()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 16 def content return meta_records if DbBlaster.configuration.s3_meta_format == Configuration::INLINE_S3_META_FORMAT { meta: meta, records: records } end
meta()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 32 def meta @meta ||= (DbBlaster.configuration.s3_meta.presence || {}).merge(source_table: source_table.name) end
meta_records()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 36 def meta_records records.collect { |record| record.merge(meta) } end
publish()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 8 def publish client.put_object(bucket: DbBlaster.configuration.s3_bucket, key: S3KeyBuilder.build(source_table_name: source_table.name, batch_start_time: batch_start_time), tagging: tagging, body: content.to_json) end
tagging()
click to toggle source
# File lib/db_blaster/s3_publisher.rb, line 23 def tagging URI.encode_www_form(tags_hash) end