class S3diff::S3File
Public Class Methods
new(s3_uri, s3_client)
click to toggle source
# File lib/s3diff/s3_file.rb, line 6 def initialize(s3_uri, s3_client) @s3c = s3_client @uri = s3_uri end
Public Instance Methods
etag()
click to toggle source
# File lib/s3diff/s3_file.rb, line 11 def etag head.etag.delete(%(")) if exist? end
exist?()
click to toggle source
# File lib/s3diff/s3_file.rb, line 27 def exist? !head.nil? end
original_path()
click to toggle source
# File lib/s3diff/s3_file.rb, line 23 def original_path @uri end
path()
click to toggle source
# File lib/s3diff/s3_file.rb, line 19 def path cache_file.path end
size()
click to toggle source
# File lib/s3diff/s3_file.rb, line 15 def size head.content_length if exist? end
Private Instance Methods
cache_file()
click to toggle source
# File lib/s3diff/s3_file.rb, line 41 def cache_file @cache_file ||= begin f = Tempfile.new("") @s3c.get_object(@uri, f) if exist? f.flush f end end
head()
click to toggle source
# File lib/s3diff/s3_file.rb, line 33 def head @head ||= begin @s3c.head_object(@uri) rescue Aws::S3::Errors::NotFound nil end end