Sample code for 30+ languages & platforms
Visual FoxPro

Download S3 CloudTrail Log and Un-Gzip

See more Amazon S3 Examples

Demonstrates 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.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL lcBucketName
LOCAL lcObjectName
LOCAL lcLocalFilePath
LOCAL lnStatusCode
LOCAL lcJsonPath
LOCAL loGzip
LOCAL loJson

lnSuccess = 0

* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

loHttp.AwsAccessKey = "AWS_ACCESS_KEY"
loHttp.AwsSecretKey = "AWS_SECRET_KEY"
loHttp.AwsRegion = "us-west-2"
loHttp.AwsEndpoint = "s3-us-west-2.amazonaws.com"

lcBucketName = "chilkat.logs"
lcObjectName = "/AWSLogs/957491831129/CloudTrail/us-west-1/2016/11/12/957491831129_CloudTrail_us-west-1_20161112T1335Z_umXfD4RxHE5nDGuI.json.gz"
lcLocalFilePath = "qa_output/cloudTrailLog.json.gz"

lnSuccess = loHttp.S3_DownloadFile(lcBucketName,lcObjectName,lcLocalFilePath)
IF (lnSuccess <> 1) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    CANCEL
ENDIF

lnStatusCode = loHttp.LastStatus
IF (lnStatusCode <> 200) THEN
    ? "Failed to download, response status code = " + STR(lnStatusCode)
    RELEASE loHttp
    CANCEL
ENDIF

lcJsonPath = "qa_output/cloudTrailLog.json"
loGzip = CreateObject('Chilkat.Gzip')
lnSuccess = loGzip.UncompressFile(lcLocalFilePath,lcJsonPath)
IF (lnSuccess = 0) THEN
    ? loGzip.LastErrorText
    RELEASE loHttp
    RELEASE loGzip
    CANCEL
ENDIF

loJson = CreateObject('Chilkat.JsonObject')
loJson.LoadFile(lcJsonPath)
loJson.EmitCompact = 0
? loJson.Emit()

* 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"
*     }
*   ]
* }

RELEASE loHttp
RELEASE loGzip
RELEASE loJson