qiniu-kit
A collection of helpful methods for debugging Qiniu Cloud Storage API.
Installation
Add this line to your application's Gemfile:
gem 'qiniu-kit'
And then execute:
$ bundle
Or install it yourself as:
$ gem install qiniu-kit
Usage
require 'qiniu-kit'
Qiniu::Kit.decode_json('{"abc":"def"}')
#=> {"abc" => "def"}
Qiniu::Kit.encode_json({:abc => 'def'})
# convert Ruby back to JSON
Qiniu::Kit.base64_url_encode("bucket:key")
#=> "YnVja2V0OmtleQ=="
Qiniu::Kit.base64_url_decode("YnVja2V0OmtleQ==")
#=> "bucket:key"
Qiniu::Kit.entry_uri_encode("bucket", "key")
#=> "YnVja2V0OmtleQ=="
default_mac = Qiniu::Kit::Mac.new
# this will load Qiniu.config[:access_key] and Qiniu.config[:secret_key] as its args
mac = Qiniu::Kit::Mac.new("access_key", "secret_key")
#=> #<Qiniu::Kit::Mac:0x007fb87ba89040 @access_key="access_key", @secret_key="secret_key">
mac.hmac_sha1_digest('data')
#=> "A\xF3\xC2\x14\xCE\x97\xEEY5,\rC\xD5P/\xAC\xA4\xB9l\x13"
mac.base64_hmac_sha1_digest('data')
#=> "QfPCFM6X7lk1LA1D1VAvrKS5bBM="
mac.sign('data')
#=> "access_key:QfPCFM6X7lk1LA1D1VAvrKS5bBM="
mac.sign_with_data('data')
#=> "access_key:AbKufp75scn1gPkjEi1PNDcH3qg=:ZGF0YQ=="
url = 'http://domain/key?param1=value1¶m2=value2'
body = nil
mac.sign_with_request(url, body)
#=> "access_key:85Q_5E2cYOMeVFg1a50nW3To2n8="
Configuration
You can configure your Qiniu account access credentials globally. This is very useful to setup onther Qiniu libraries, like qiniu-policy.
require 'qiniu-kit'
Qiniu.config = {:access_key => '...', :secret_key => '...'}
Additionally, the library will attempt to load these options from ENV
:
export QINIU_ACCESS_KEY='...'
export QINIU_SECRET_KEY='...'
TODO
- support http requests/responses
Supported Ruby versions
This library aims to support and is tested against the following Ruby implementations:
- MRI 2.1.0
- MRI 2.0.0
- MRI 1.9.3
- MRI 1.9.2
- MRI 1.8.7
- JRuby 1.7.9 in Ruby 1.8 mode
- JRuby 1.7.9 in Ruby 1.9 mode
- Ruby Enterprise Edition 1.8.7 2012.02
- Ruby (latest master)
- JRuby (latest master)
- Rubinius
If something doesn't work on one of these Ruby versions, it's a bug.
This library may inadvertently work (or seem to work) on other Ruby implementations, however support will only be provided for the versions listed above.
Contributing
- Fork it ( https://github.com/why404/qiniu-kit/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request