class Bricolage::StreamingLoad::ManifestFile
Public Class Methods
create(ds:, job_id:, object_urls:, logger:, noop: false, &block)
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 9 def ManifestFile.create(ds:, job_id:, object_urls:, logger:, noop: false, &block) manifest = new(ds, job_id, object_urls, logger: logger, noop: noop) if block manifest.create_temporary(&block) else manifest.put return manifest end end
new(ds, job_id, object_urls, logger:, noop: false)
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 19 def initialize(ds, job_id, object_urls, logger:, noop: false) @ds = ds @job_id = job_id @object_urls = object_urls @logger = logger @noop = noop end
Public Instance Methods
content()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 41 def content @content ||= begin ents = @object_urls.map {|url| { "url" => url, "mandatory" => true } } obj = { "entries" => ents } JSON.pretty_generate(obj) end end
create_temporary() { |self| ... }
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 67 def create_temporary put yield self delete end
credential_string()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 27 def credential_string @ds.credential_string end
delete()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 59 def delete @logger.info "s3: delete: #{url}" @ds.object(name).delete unless @noop rescue Aws::S3::Errors::ServiceError => ex @logger.exception ex raise S3Exception.wrap(ex) end
name()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 31 def name return @name if @name now =Time.now "#{now.strftime('%Y/%m/%d')}/manifest-#{now.strftime('%H%M%S')}-#{@job_id}.json" end
put()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 51 def put @logger.info "s3: put: #{url}" @ds.object(name).put(body: content) unless @noop rescue Aws::S3::Errors::ServiceError => ex @logger.exception ex raise S3Exception.wrap(ex) end
url()
click to toggle source
# File lib/bricolage/streamingload/manifest.rb, line 37 def url @url ||= @ds.url(name) end