class Openstack::Client::Storage

It interacts with Containers/Objects OpenStack API.

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

:reek: IrresponsibleModule

Attributes

authenticator[R]
container[R]
region[R]

Public Class Methods

new(authenticator:, container:, region:) click to toggle source
# File lib/openstack/client/storage.rb, line 21
def initialize(authenticator:, container:, region:)
  @authenticator = authenticator
  @container = container
  @region = region
end

Public Instance Methods

bulk_delete_objects(key_collection) click to toggle source
# File lib/openstack/client/storage.rb, line 101
def bulk_delete_objects(key_collection)
  https_client.request(
    prepare_request do
      BulkDeleteObjects.new(uri: uri, keys: key_collection).request
    end
  )
end
create_temporary_uri(key, http_method, **options) click to toggle source
# File lib/openstack/client/storage.rb, line 89
def create_temporary_uri(key, http_method, **options)
  CreateTemporaryURI.new(
    uri: absolute_uri(key),
    http_method: http_method,
    options: options
  ).generate
end
delete_object(key) click to toggle source
# File lib/openstack/client/storage.rb, line 65
def delete_object(key)
  https_client.request(
    prepare_request do
      DeleteObject.new(uri: absolute_uri(key)).request
    end
  )
end
get_object(key, **options) click to toggle source
# File lib/openstack/client/storage.rb, line 35
def get_object(key, **options)
  https_client.request(
    prepare_request do
      GetObject.new(uri: absolute_uri(key), options: options).request
    end
  )
end
get_object_by_range(key, range, **options) click to toggle source
# File lib/openstack/client/storage.rb, line 43
def get_object_by_range(key, range, **options)
  https_client.request(
    prepare_request do
      GetObjectByRange.new(
        uri: absolute_uri(key), range: range, options: options
      ).request
    end
  )
end
list_objects(**options) click to toggle source
# File lib/openstack/client/storage.rb, line 81
def list_objects(**options)
  https_client.request(
    prepare_request do
      ListObjects.new(uri: uri, options: options).request
    end
  )
end
put_object(key, io, checksum: nil) click to toggle source
# File lib/openstack/client/storage.rb, line 53
def put_object(key, io, checksum: nil)
  https_client.request(
    prepare_request do
      PutObject.new(
        io: io,
        uri: absolute_uri(key),
        checksum: checksum
      ).request
    end
  )
end
show_object_metadata(key) click to toggle source
# File lib/openstack/client/storage.rb, line 73
def show_object_metadata(key)
  https_client.request(
    prepare_request do
      ShowObjectMetadata.new(uri: absolute_uri(key)).request
    end
  )
end
temporary_url(key, http_method, **options) click to toggle source
# File lib/openstack/client/storage.rb, line 97
def temporary_url(key, http_method, **options)
  create_temporary_uri(key, http_method, options).to_s
end
uri() click to toggle source
# File lib/openstack/client/storage.rb, line 27
def uri
  URI(ObjectStoreURL.new(
    authenticator: authenticator,
    container: container,
    region: region
  ).call)
end

Private Instance Methods

prepare_request() { || ... } click to toggle source
# File lib/openstack/client/storage.rb, line 111
def prepare_request
  return unless block_given?

  authenticate_request do
    yield.tap do |request|
      request.add_field('Accept', 'application/json')
    end
  end