Submit
Path:
~
/
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
letsencrypt
/
vendor
/
aws
/
aws-sdk-php
/
src
/
CloudTrail
/
File Content:
LogFileReader.php
<?php namespace PleskLetsEncrypt\Aws\CloudTrail; use PleskLetsEncrypt\Aws\S3\S3Client; /** * 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 an 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'] : []; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
Exception
---
0755
CloudTrailClient.php
7960 bytes
0644
LogFileIterator.php
11091 bytes
0644
LogFileReader.php
1760 bytes
0644
LogRecordIterator.php
5037 bytes
0644
N4ST4R_ID | Naxtarrr