class Openstack::Client::Storage::GetObjectByRange

Downloads the object by chunks at the specified URI. It uses the `Range` header with byte range.

Attributes

range[R]

Public Class Methods

new(uri:, range:, options: {}) click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 13
def initialize(uri:, range:, options: {})
  super(uri: uri, options: options)
  @range = range
end

Public Instance Methods

request() click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 18
def request
  super.tap do |request|
    request.add_field('Range', byte_range)
  end
end

Private Instance Methods

byte_range() click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 26
def byte_range
  "bytes=#{first_byte}-#{last_byte}"
end
first_byte() click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 30
def first_byte
  range.begin
end
last_byte() click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 34
def last_byte
  range.exclude_end? ? range_end - 1 : range_end
end
range_end() click to toggle source
# File lib/openstack/client/storage/get_object_by_range.rb, line 38
def range_end
  range.end
end