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 version=\"1.0\" encoding=\"utf-8\"?>\n <KeyInfo>\n <Start>\#{start}</Start>\n <Expiry>\#{expiry}</Expiry>\n </KeyInfo>\n XML\n\n response = Http.new(uri, signer:).post(content)\n\n doc = REXML::Document.new(response)\n\n @signed_oid = doc.get_elements(\"/UserDelegationKey/SignedOid\").first.get_text.to_s\n @signed_tid = doc.get_elements(\"/UserDelegationKey/SignedTid\").first.get_text.to_s\n @signed_start = doc.get_elements(\"/UserDelegationKey/SignedStart\").first.get_text.to_s\n @signed_expiry = doc.get_elements(\"/UserDelegationKey/SignedExpiry\").first.get_text.to_s\n @signed_service = doc.get_elements(\"/UserDelegationKey/SignedService\").first.get_text.to_s\n @signed_version = doc.get_elements(\"/UserDelegationKey/SignedVersion\").first.get_text.to_s\n @user_delegation_key = Base64.decode64(doc.get_elements(\"/UserDelegationKey/Value\").first.get_text.to_s)\nend\n".gsub!(/[[:space:]]+/, " ").strip! |
#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 |