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 Set Vault Access PolicyDemonstrates how to set an access policy for a vault (will overwrite the existing policy).
; 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 Set Vault Access Policy Reference Documentation ; $oRest.AddHeader("x-amz-glacier-version","2012-06-01") ; Create the following JSON ; Use this online tool to generate the code from sample JSON: ; Generate Code to Create JSON ; { ; "Version": "2012-10-17", ; "Statement": [ ; { ; "Sid": "Define-owner-access-rights", ; "Effect": "Allow", ; "Principal": { ; "AWS": "arn:aws:iam::AWS_ACCOUNT_ID:root" ; }, ; "Action": "glacier:DeleteArchive", ; "Resource": "arn:aws:glacier:us-west-2:AWS_ACCOUNT_ID:vaults/chilkat" ; } ; ] ; } $oJsonPolicy = ObjCreate("Chilkat.JsonObject") $oJsonPolicy.UpdateString("Version","2012-10-17") $oJsonPolicy.UpdateString("Statement[0].Sid","Define-owner-access-rights") $oJsonPolicy.UpdateString("Statement[0].Effect","Allow") $oJsonPolicy.UpdateString("Statement[0].Principal.AWS","arn:aws:iam::AWS_ACCOUNT_ID:root") $oJsonPolicy.UpdateString("Statement[0].Action","glacier:DeleteArchive") ; Notice here the name of the vault: "chilkat". Change it to your vault name. Also use your actual AWS account ID. $oJsonPolicy.UpdateString("Statement[0].Resource","arn:aws:glacier:us-west-2:AWS_ACCOUNT_ID:vaults/chilkat") ; Wrap the above JSON in this JSON: ; { ; "Policy": "{ ... the above JSON ... }" ; } $oJson = ObjCreate("Chilkat.JsonObject") $oJson.UpdateString("Policy",$oJsonPolicy.Emit()) $oSbRequestBody = ObjCreate("Chilkat.StringBuilder") $oJson.EmitSb($oSbRequestBody) $oSbResponseBody = ObjCreate("Chilkat.StringBuilder") $bSuccess = $oRest.FullRequestSb("PUT","/AWS_ACCOUNT_ID/vaults/chilkat/access-policy",$oSbRequestBody,$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 204 response status with an empty response body. ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF) |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.