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
(PureBasic) Download S3 CloudTrail Log and Un-GzipDemonstrates how to download a Amazon CloudTrail log from an S3 bucket. The file in this example is a .json.gz. The file is uncompressed and the JSON parsed.
IncludeFile "CkGzip.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkAwsAccessKey(http, "AWS_ACCESS_KEY") CkHttp::setCkAwsSecretKey(http, "AWS_SECRET_KEY") CkHttp::setCkS3Ssl(http, 1) CkHttp::setCkAwsRegion(http, "us-west-2") CkHttp::setCkAwsEndpoint(http, "s3-us-west-2.amazonaws.com") bucketName.s = "chilkat.logs" objectName.s = "/AWSLogs/957491831129/CloudTrail/us-west-1/2016/11/12/957491831129_CloudTrail_us-west-1_20161112T1335Z_umXfD4RxHE5nDGuI.json.gz" localFilePath.s = "qa_output/cloudTrailLog.json.gz" success.i = CkHttp::ckS3_DownloadFile(http,bucketName,objectName,localFilePath) If success <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) ProcedureReturn EndIf statusCode.i = CkHttp::ckLastStatus(http) If statusCode <> 200 Debug "Failed to download, response status code = " + Str(statusCode) CkHttp::ckDispose(http) ProcedureReturn EndIf jsonPath.s = "qa_output/cloudTrailLog.json" gzip.i = CkGzip::ckCreate() If gzip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkGzip::ckUncompressFile(gzip,localFilePath,jsonPath) If success = 0 Debug CkGzip::ckLastErrorText(gzip) CkHttp::ckDispose(http) CkGzip::ckDispose(gzip) ProcedureReturn EndIf json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadFile(json,jsonPath) CkJsonObject::setCkEmitCompact(json, 0) Debug CkJsonObject::ckEmit(json) ; Sample JSON is shown below. ; Go to http://tools.chilkat.io/jsonParse.cshtml ; and copy/paste the JSON into the online tool to generate parsing code. ; { ; "Records": [ ; { ; "eventVersion": "1.05", ; "userIdentity": { ; "type": "Root", ; "principalId": "954591834127", ; "arn": "arn:aws:iam::954591834127:root", ; "accountId": "954591834127", ; "accessKeyId": "ASIAJ3DEMXUXI43B6FYQ", ; "sessionContext": { ; "attributes": { ; "mfaAuthenticated": "false", ; "creationDate": "2016-11-12T13:09:31Z" ; } ; } ; }, ; "eventTime": "2016-11-12T13:34:39Z", ; "eventSource": "cloudtrail.amazonaws.com", ; "eventName": "DescribeTrails", ; "awsRegion": "us-west-1", ; "sourceIPAddress": "98.228.98.57", ; "userAgent": "console.amazonaws.com", ; "requestParameters": { ; "trailNameList": [ ; ] ; }, ; "responseElements": null, ; "requestID": "c2a0376c-a8dc-11e6-89e7-85ac5ce5ee56", ; "eventID": "eb5afd70-dae1-41f0-82b4-91c3c936d9ba", ; "eventType": "AwsApiCall", ; "recipientAccountId": "954591834127" ; } ; ] ; } CkHttp::ckDispose(http) CkGzip::ckDispose(gzip) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.