class MinioRuby::MinioClient

Attributes

access_key[RW]
debug[RW]
end_point[RW]
port[RW]
region[RW]
secret_key[RW]
secure[RW]
transport[RW]

Public Class Methods

new(params = {}) click to toggle source
# File lib/minio-ruby.rb, line 15
def initialize(params = {})
  # TODO: add extensive error checking of params here.
  params[:debug] = params[:debug] ? params[:debug] : false
  params.each { |key, value| send "#{key}=", value }
end

Public Instance Methods

bucket_exists(bucket_name) click to toggle source
# File lib/minio-ruby.rb, line 64
def bucket_exists(bucket_name); end
fput_object(bucket_name, object_name, file_path, content_type) click to toggle source
# File lib/minio-ruby.rb, line 67
def fput_object(bucket_name, object_name, file_path, content_type); end
get_object(bucket_name, object_name) click to toggle source
# File lib/minio-ruby.rb, line 21
def get_object(bucket_name, object_name)
  url = "#{end_point}/#{bucket_name}/#{object_name}"
  headers = sign_headers 'get', url

  uri = URI.parse(end_point)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = secure

  req = Net::HTTP::Get.new(url, headers)
  req.body = ''
  https.set_debug_output($stdout) if debug
  https.request(req)
end
make_bucket(bucket_name) click to toggle source
# File lib/minio-ruby.rb, line 69
def make_bucket(bucket_name)
  url = "#{end_point}/#{bucket_name}"
  headers = sign_headers 'put', url
  uri = URI.parse(url)

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = secure

  req = Net::HTTP::Put.new(uri, headers)
  req.body = ''
  https.set_debug_output($stdout) if debug
  response = https.request(req)

  if response.code != '200'
    puts 'Error Making bucket'
  else
    puts 'Made bucket'
  end
end
presigned_object(bucket_name, object_name, expire_in = 24 * 60 * 60) click to toggle source
# File lib/minio-ruby.rb, line 35
def presigned_object(bucket_name, object_name, expire_in = 24 * 60 * 60)
  url = "#{end_point}/#{bucket_name}/#{object_name}"
  headers = sign_headers 'get', url, '', 'expire_in' => expire_in.to_s

  puts headers
  uri = URI.parse(end_point)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = secure

  req = Net::HTTP::Get.new(url, headers)
  req.body = ''
  https.set_debug_output($stdout) if debug
  https.request(req)
end
put_object(bucket_name, object_name, data) click to toggle source
# File lib/minio-ruby.rb, line 50
def put_object(bucket_name, object_name, data)
  url = "#{end_point}/#{bucket_name}/#{object_name}"
  headers = sign_headers 'put', url, data
  uri = URI.parse(end_point)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = secure

  req = Net::HTTP::Put.new(url, headers)
  req.body = data
  https.set_debug_output($stdout) if debug
  https.request(req)
end

Private Instance Methods

sign_headers(method, url, data = '', headers = {}) click to toggle source
# File lib/minio-ruby.rb, line 91
def sign_headers(method, url, data = '', headers = {})
  signer = MinioRuby::Signer.new(
    access_key: access_key,
    secret_key: secret_key,
    region: region
  )
  signer.sign_v4(method,
                 url,
                 headers,
                 data,
                 debug)
end