Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- This requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local http = chilkat.Http.new()
http.aws_access_key = "AWS_ACCESS_KEY"
http.aws_secret_key = "AWS_SECRET_KEY"
http.aws_region = "us-west-2"
http.aws_endpoint = "s3-us-west-2.amazonaws.com"
local bucketName = "chilkat.logs"
local objectName = "/AWSLogs/957491831129/CloudTrail/us-west-1/2016/11/12/957491831129_CloudTrail_us-west-1_20161112T1335Z_umXfD4RxHE5nDGuI.json.gz"
local localFilePath = "qa_output/cloudTrailLog.json.gz"
local success = http:s3_download_file(bucketName, objectName, localFilePath)
if not success then
print(http.last_error_text)
return
end
local statusCode = http.last_status
if statusCode ~= 200 then
print("Failed to download, response status code = " .. statusCode)
return
end
local jsonPath = "qa_output/cloudTrailLog.json"
local gzip = chilkat.Gzip.new()
success = gzip:uncompress_file(localFilePath, jsonPath)
if not success then
print(gzip.last_error_text)
return
end
local json = chilkat.JsonObject.new()
json:load_file(jsonPath)
json.emit_compact = false
print(json: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"
-- }
-- ]
-- }