Class: AzureBlob::UserDelegationKey
- Inherits:
-
Object
- Object
- AzureBlob::UserDelegationKey
- Defined in:
- lib/azure_blob/user_delegation_key.rb
Overview
:nodoc:
Constant Summary collapse
- EXPIRATION =
7 hours
25200
- EXPIRATION_BUFFER =
1 hours
3600
Instance Attribute Summary collapse
-
#signed_expiry ⇒ Object
readonly
Returns the value of attribute signed_expiry.
-
#signed_oid ⇒ Object
readonly
Returns the value of attribute signed_oid.
-
#signed_service ⇒ Object
readonly
Returns the value of attribute signed_service.
-
#signed_start ⇒ Object
readonly
Returns the value of attribute signed_start.
-
#signed_tid ⇒ Object
readonly
Returns the value of attribute signed_tid.
-
#signed_version ⇒ Object
readonly
Returns the value of attribute signed_version.
Instance Method Summary collapse
-
#initialize(account_name:, signer:) ⇒ UserDelegationKey
constructor
A new instance of UserDelegationKey.
- #refresh ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(account_name:, signer:) ⇒ UserDelegationKey
Returns a new instance of UserDelegationKey.
7 8 9 10 11 12 13 14 15 |
# File 'lib/azure_blob/user_delegation_key.rb', line 7 def initialize(account_name:, signer:) @uri = URI.parse( "#{signer.host}/?restype=service&comp=userdelegationkey" ) @signer = signer refresh end |
Instance Attribute Details
#signed_expiry ⇒ Object (readonly)
Returns the value of attribute signed_expiry.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_expiry @signed_expiry end |
#signed_oid ⇒ Object (readonly)
Returns the value of attribute signed_oid.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_oid @signed_oid end |
#signed_service ⇒ Object (readonly)
Returns the value of attribute signed_service.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_service @signed_service end |
#signed_start ⇒ Object (readonly)
Returns the value of attribute signed_start.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_start @signed_start end |
#signed_tid ⇒ Object (readonly)
Returns the value of attribute signed_tid.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_tid @signed_tid end |
#signed_version ⇒ Object (readonly)
Returns the value of attribute signed_version.
52 53 54 |
# File 'lib/azure_blob/user_delegation_key.rb', line 52 def signed_version @signed_version end |
Instance Method Details
#refresh ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/azure_blob/user_delegation_key.rb', line 22 def refresh return unless expired? now = Time.now.utc start = now.iso8601 @expiration = (now + EXPIRATION) expiry = @expiration.iso8601 content = <<-XML.gsub!(/[[:space:]]+/, " ").strip! <?xml version="1.0" encoding="utf-8"?> <KeyInfo> <Start>#{start}</Start> <Expiry>#{expiry}</Expiry> </KeyInfo> XML response = Http.new(uri, signer:).post(content) doc = REXML::Document.new(response) @signed_oid = doc.get_elements("/UserDelegationKey/SignedOid").first.get_text.to_s @signed_tid = doc.get_elements("/UserDelegationKey/SignedTid").first.get_text.to_s @signed_start = doc.get_elements("/UserDelegationKey/SignedStart").first.get_text.to_s @signed_expiry = doc.get_elements("/UserDelegationKey/SignedExpiry").first.get_text.to_s @signed_service = doc.get_elements("/UserDelegationKey/SignedService").first.get_text.to_s @signed_version = doc.get_elements("/UserDelegationKey/SignedVersion").first.get_text.to_s @user_delegation_key = Base64.decode64(doc.get_elements("/UserDelegationKey/Value").first.get_text.to_s) end |
#to_s ⇒ Object
17 18 19 20 |
# File 'lib/azure_blob/user_delegation_key.rb', line 17 def to_s refresh user_delegation_key end |