Class: Upyun::Purge::Client
- Inherits:
-
Object
- Object
- Upyun::Purge::Client
- Defined in:
- lib/upyun/purge/client.rb
Instance Attribute Summary collapse
-
#urls ⇒ Object
Returns the value of attribute urls.
Instance Method Summary collapse
Instance Attribute Details
#urls ⇒ Object
Returns the value of attribute urls.
5 6 7 |
# File 'lib/upyun/purge/client.rb', line 5 def urls @urls end |
Instance Method Details
#auth_header ⇒ Object
38 39 40 |
# File 'lib/upyun/purge/client.rb', line 38 def auth_header "UpYun #{Upyun::Purge.bucket_name}:#{Upyun::Purge.operator_name}:#{make_signature}" end |
#make_signature ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/upyun/purge/client.rb', line 30 def make_signature _urls = @urls.join("\n") datetime = Time.now second_str = [_urls,Upyun::Purge.bucket_name, datetime, md5(Upyun::Purge.operator_password)].join("&") sign = md5(second_str) sign end |
#md5(str) ⇒ Object
42 43 44 |
# File 'lib/upyun/purge/client.rb', line 42 def md5( str ) Digest::MD5.hexdigest str end |
#purge(urls = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/upyun/purge/client.rb', line 7 def purge( urls = nil) @urls = urls.is_a?(Array) ? urls : [urls] @urls = @urls.compact uri = URI(Upyun::Purge.api_server) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data( purge: @urls.join("\n") ) request['Authorization'] = auth_header request['Date'] = Time.now response = http.request(request) case response when Net::HTTPSuccess return response.body else raise Exception.new "Request uri:#{uri.request_uri} \nResponse code: #{response.code} \nMessage: #{response.body}" end end |