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 Upload Archive from In-Memory DataDemonstrates how to add an archive to a vault from data in memory. Note: This example requires Chilkat v9.5.0.78 or greater.
; 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. ; -------------------------------------------------------------------------- ; Load the data to be uploaded. $oBd = ObjCreate("Chilkat.BinData") $bSuccess = $oBd.LoadFile("qa_data/jpg/penguins.jpg") ; (The point here is that the contents of the bd don't necessarily have to come from a file.) ; ; For more information, see Glacier Upload Archive Reference Documentation ; $oRest.AddHeader("x-amz-glacier-version","2012-06-01") ; We'll need to pre-compute the SHA256 tree hash and the SHA256 linear hash. ; The hashes are added in the following request headers: ; x-amz-sha256-tree-hash: SHA256 tree hash ; x-amz-content-sha256: SHA256 linear hash $oCrypt = ObjCreate("Chilkat.Crypt2") $oCrypt.HashAlgorithm = "sha256-tree-hash" $oCrypt.EncodingMode = "hexlower" Local $sTreeHashHex = $oCrypt.HashBdENC($oBd) $oRest.AddHeader("x-amz-sha256-tree-hash",$sTreeHashHex) $oCrypt.HashAlgorithm = "sha256" Local $sLinearHashHex = $oCrypt.HashBdENC($oBd) $oAuthAws.PrecomputedSha256 = $sLinearHashHex ; We can optionally add a description $oRest.AddHeader("x-amz-archive-description","Penguins JPG") $oSbResponseBody = ObjCreate("Chilkat.StringBuilder") $bSuccess = $oRest.FullRequestBd("POST","/AWS_ACCOUNT_ID/vaults/chilkat/archives",$oBd,$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 201 response status with an empty response body. ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF) ; If successful, the response header looks like this. ; The Location and x-amz-archive-id are two items of information we may wish to save.. ; HTTP/1.1 201 Created ; x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q ; Date: Wed, 10 Feb 2017 12:00:00 GMT ; x-amz-sha256-tree-hash: beb0fe31a1c7ca8c6c04d574ea906e3f97b31fdca7571defb5b44dca89b5af60 ; Location: /111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTH ... GlqrEXAMPLEArchiveId ; x-amz-archive-id: NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsu ... BfGlqrEXAMPLEArchiveId ; Local $sArchiveId = $oRest.ResponseHdrByName("x-amz-archive-id") ConsoleWrite("x-amz-archive-id = " & $sArchiveId & @CRLF) Local $sLocation = $oRest.ResponseHdrByName("Location") ConsoleWrite("Location = " & $sLocation & @CRLF) |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.