Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(AutoIt) Amazon Glacier Get Vault Access PolicyDemonstrates how to retrieve the access-policy subresource set on the vault
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oRest = ObjCreate("Chilkat.Rest") ; Connect to the Amazon AWS REST server in the desired region. Local $bTls = True Local $iPort = 443 Local $bAutoReconnect = True Local $bSuccess = $oRest.Connect("glacier.us-west-2.amazonaws.com",$iPort,$bTls,$bAutoReconnect) ; Provide AWS credentials. $oAuthAws = ObjCreate("Chilkat.AuthAws") $oAuthAws.AccessKey = "AWS_ACCESS_KEY" $oAuthAws.SecretKey = "AWS_SECRET_KEY" $oAuthAws.ServiceName = "glacier" $oAuthAws.Region = "us-west-2" $bSuccess = $oRest.SetAuthAws($oAuthAws) ; -------------------------------------------------------------------------- ; Note: The above REST connection and setup of the AWS credentials ; can be done once. After connecting, any number of REST calls can be made. ; The "auto reconnect" property passed to rest.Connect indicates that if ; the connection is lost, a REST method call will automatically reconnect ; if needed. ; -------------------------------------------------------------------------- ; ; For more information, see Glacier Get Vault Access Policy Reference Documentation ; $oRest.AddHeader("x-amz-glacier-version","2012-06-01") ; Get the access policy for the "chilkat" vault. $oSbResponseBody = ObjCreate("Chilkat.StringBuilder") $bSuccess = $oRest.FullRequestNoBodySb("GET","/AWS_ACCOUNT_ID/vaults/chilkat/access-policy",$oSbResponseBody) If ($bSuccess <> True) Then ConsoleWrite($oRest.LastErrorText & @CRLF) Exit EndIf Local $iRespStatusCode = $oRest.ResponseStatusCode If ($iRespStatusCode >= 400) Then ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF) ConsoleWrite("Response Header:" & @CRLF) ConsoleWrite($oRest.ResponseHeader & @CRLF) ConsoleWrite("Response Body:" & @CRLF) ConsoleWrite($oSbResponseBody.GetAsString() & @CRLF) Exit EndIf ; Success is indicated by a 200 response status. ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF) $oJson = ObjCreate("Chilkat.JsonObject") $oJson.LoadSb($oSbResponseBody) $oJson.EmitCompact = False ; Returns JSON such as this: ; { ; "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::9999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:9999999999999:vaults/chilkat\"}]}" ; } ; Unwrap... $oJsonPolicy = ObjCreate("Chilkat.JsonObject") $oJsonPolicy.Load($oJson.StringOf("Policy")) $oJsonPolicy.EmitCompact = False ConsoleWrite($oJsonPolicy.Emit() & @CRLF) ConsoleWrite("----" & @CRLF) ; The jsonPolicy contains: ; { ; "Version": "2012-10-17", ; "Statement": [ ; { ; "Sid": "Define-owner-access-rights", ; "Effect": "Allow", ; "Principal": { ; "AWS": "arn:aws:iam::9999999999999:root" ; }, ; "Action": "glacier:DeleteArchive", ; "Resource": "arn:aws:glacier:us-west-2:9999999999999:vaults/chilkat" ; } ; ] ; } ; ; Use this online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON ; To parse the above contents of jsonPolicy... Local $sVersion Local $i Local $iCount_i Local $sSid Local $sEffect Local $sPrincipalAWS Local $sAction Local $sResource $sVersion = $oJsonPolicy.StringOf("Version") $i = 0 $iCount_i = $oJsonPolicy.SizeOfArray("Statement") While $i < $iCount_i $oJsonPolicy.I = $i $sSid = $oJsonPolicy.StringOf("Statement[i].Sid") $sEffect = $oJsonPolicy.StringOf("Statement[i].Effect") $sPrincipalAWS = $oJsonPolicy.StringOf("Statement[i].Principal.AWS") $sAction = $oJsonPolicy.StringOf("Statement[i].Action") $sResource = $oJsonPolicy.StringOf("Statement[i].Resource") $i = $i + 1 Wend |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.