mirror of
https://github.com/wahyd4/ruby-sdk.git
synced 2026-08-09 21:06:19 +10:00
121 lines
3.3 KiB
Ruby
Executable File
121 lines
3.3 KiB
Ruby
Executable File
# -*- encoding: utf-8 -*-
|
|
|
|
module Qiniu
|
|
|
|
class Exception < RuntimeError
|
|
end
|
|
|
|
class ResponseError < Exception
|
|
attr_reader :response
|
|
|
|
def initialize(message, response = nil)
|
|
@response = response
|
|
super(message)
|
|
end
|
|
|
|
def http_code
|
|
@response.code.to_i if @response
|
|
end
|
|
|
|
def http_body
|
|
@response.body if @response
|
|
end
|
|
|
|
def inspect
|
|
"#{message}: #{http_body}"
|
|
end
|
|
end
|
|
|
|
class RequestFailed < ResponseError
|
|
def message
|
|
"HTTP status code: #{http_code}. Response body: #{http_body}"
|
|
end
|
|
|
|
def to_s
|
|
message
|
|
end
|
|
end
|
|
|
|
class UploadFailedError < Exception
|
|
def initialize(status_code, response_data)
|
|
data_string = response_data.map { |key, value| %Q(:#{key.to_s} => #{value.to_s}) }
|
|
msg = %Q(Uploading Failed. HTTP Status Code: #{status_code}. HTTP response body: #{data_string.join(', ')}.)
|
|
super(msg)
|
|
end
|
|
end
|
|
|
|
class FileSeekReadError < Exception
|
|
def initialize(fpath, block_index, seek_pos, read_length, result_length)
|
|
msg = "Reading file: #{fpath}, "
|
|
msg += "at block index: #{block_index}. "
|
|
msg += "Expected seek_pos:#{seek_pos} and read_length:#{read_length}, "
|
|
msg += "but got result_length: #{result_length}."
|
|
super(msg)
|
|
end
|
|
end
|
|
|
|
class BlockSizeNotMathchError < Exception
|
|
def initialize(fpath, block_index, offset, restsize, block_size)
|
|
msg = "Reading file: #{fpath}, "
|
|
msg += "at block index: #{block_index}. "
|
|
msg += "Expected offset: #{offset}, restsize: #{restsize} and block_size: #{block_size}, "
|
|
msg += "but got offset+restsize=#{offset+restsize}."
|
|
super(msg)
|
|
end
|
|
end
|
|
|
|
class BlockCountNotMathchError < Exception
|
|
def initialize(fpath, block_count, checksum_count, progress_count)
|
|
msg = "Reading file: #{fpath}, "
|
|
msg += "Expected block_count, checksum_count, progress_count is: #{block_count}, "
|
|
msg += "but got checksum_count: #{checksum_count}, progress_count: #{progress_count}."
|
|
super(msg)
|
|
end
|
|
end
|
|
|
|
class MissingArgsError < Exception
|
|
def initialize(missing_keys)
|
|
key_list = missing_keys.map {|key| key.to_s}.join(' and the ')
|
|
super("You did not provide both required args. Please provide the #{key_list}.")
|
|
end
|
|
end
|
|
|
|
class MissingAccessToken < MissingArgsError
|
|
def initialize
|
|
super([:access_token])
|
|
end
|
|
end
|
|
|
|
class MissingRefreshToken < MissingArgsError
|
|
def initialize
|
|
super([:refresh_token])
|
|
end
|
|
end
|
|
|
|
class MissingUsernameOrPassword < MissingArgsError
|
|
def initialize
|
|
super([:username, :password])
|
|
end
|
|
end
|
|
|
|
class InvalidArgsError < Exception
|
|
def initialize(invalid_keys)
|
|
key_list = invalid_keys.map {|key| key.to_s}.join(' and the ')
|
|
super("#{key_list} should not be empty.")
|
|
end
|
|
end
|
|
|
|
class MissingConfError < Exception
|
|
def initialize(missing_conf_file)
|
|
super("Error, missing #{missing_conf_file}. You must have #{missing_conf_file} to configure your client id and secret.")
|
|
end
|
|
end
|
|
|
|
class NoSuchFileError < Exception
|
|
def initialize(missing_file)
|
|
super("Error, no such file #{missing_file}.")
|
|
end
|
|
end
|
|
|
|
end # module Qiniu
|