PHP Classes

File: application/modules/extensions/aws/Aws/CloudTrail/LogFileReader.php

Recommend this page to a friend!
  Classes of Tran Tuan  >  Pretty PHP S3 Files Manager  >  application/modules/extensions/aws/Aws/CloudTrail/LogFileReader.php  >  Download  
File: application/modules/extensions/aws/Aws/CloudTrail/LogFileReader.php
Role: Application script
Content type: text/plain
Description: Application script
Class: Pretty PHP S3 Files Manager
Web based interface to manage files in Amazon S3
Author: By
Last change:
Date: 6 years ago
Size: 1,774 bytes


Class file image Download
namespace Aws\CloudTrail;


 * This class provides an easy way to read log files generated by AWS
 * CloudTrail.
 * CloudTrail log files contain data about your AWS API calls and are stored in
 * Amazon S3. The log files are gzipped and contain structured data in JSON
 * format. This class will automatically ungzip and decode the data, and return
 * the data as a array of log records
class LogFileReader
/** @var S3Client S3 client used to perform GetObject operations */
private $s3Client;

     * @param S3Client $s3Client S3 client used to retrieve objects
public function __construct(S3Client $s3Client)
$this->s3Client = $s3Client;

     * Downloads, unzips, and reads a CloudTrail log file from Amazon S3
     * @param string $s3BucketName The bucket name of the log file in Amazon S3
     * @param string $logFileKey The key of the log file in Amazon S3
     * @return array
public function read($s3BucketName, $logFileKey)
// Create a command for getting the log file object
$command = $this->s3Client->getCommand('GetObject', [
'Bucket' => (string) $s3BucketName,
'Key' => (string) $logFileKey,
'ResponseContentEncoding' => 'x-gzip'

// Make sure gzip encoding header is sent and accepted in order to
        // inflate the response data.
$command['@http']['headers']['Accept-Encoding'] = 'gzip';

// Get the JSON response data and extract the log records
$result = $this->s3Client->execute($command);
$logData = json_decode($result['Body'], true);

        return isset(
$logData['Records']) ? $logData['Records'] : [];

For more information send a message to info at phpclasses dot org.