Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Lianja) 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. loRest = createobject("CkRest") // Connect to the Amazon AWS REST server in the desired region. llBTls = .T. lnPort = 443 llBAutoReconnect = .T. llSuccess = loRest.Connect("glacier.us-west-2.amazonaws.com",lnPort,llBTls,llBAutoReconnect) // Provide AWS credentials. loAuthAws = createobject("CkAuthAws") loAuthAws.AccessKey = "AWS_ACCESS_KEY" loAuthAws.SecretKey = "AWS_SECRET_KEY" loAuthAws.ServiceName = "glacier" loAuthAws.Region = "us-west-2" llSuccess = loRest.SetAuthAws(loAuthAws) // -------------------------------------------------------------------------- // 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 // loRest.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" // } // ] // } loJsonPolicy = createobject("CkJsonObject") loJsonPolicy.UpdateString("Version","2012-10-17") loJsonPolicy.UpdateString("Statement[0].Sid","Define-owner-access-rights") loJsonPolicy.UpdateString("Statement[0].Effect","Allow") loJsonPolicy.UpdateString("Statement[0].Principal.AWS","arn:aws:iam::AWS_ACCOUNT_ID:root") loJsonPolicy.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. loJsonPolicy.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 ... }" // } loJson = createobject("CkJsonObject") loJson.UpdateString("Policy",loJsonPolicy.Emit()) loSbRequestBody = createobject("CkStringBuilder") loJson.EmitSb(loSbRequestBody) loSbResponseBody = createobject("CkStringBuilder") llSuccess = loRest.FullRequestSb("PUT","/AWS_ACCOUNT_ID/vaults/chilkat/access-policy",loSbRequestBody,loSbResponseBody) if (llSuccess <> .T.) then ? loRest.LastErrorText release loRest release loAuthAws release loJsonPolicy release loJson release loSbRequestBody release loSbResponseBody return endif lnRespStatusCode = loRest.ResponseStatusCode if (lnRespStatusCode >= 400) then ? "Response Status Code = " + str(lnRespStatusCode) ? "Response Header:" ? loRest.ResponseHeader ? "Response Body:" ? loSbResponseBody.GetAsString() release loRest release loAuthAws release loJsonPolicy release loJson release loSbRequestBody release loSbResponseBody return endif // Success is indicated by a 204 response status with an empty response body. ? "response status code = " + str(lnRespStatusCode) release loRest release loAuthAws release loJsonPolicy release loJson release loSbRequestBody release loSbResponseBody |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.