OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
zzXpress
/
vendor
/
aws
/
aws-sdk-php
/
src
/
Identity
/
S3
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:23 AM
rwxr-xr-x
📄
S3ExpressIdentity.php
121 bytes
05/19/2025 10:07:23 AM
rw-r--r--
📄
S3ExpressIdentityProvider.php
1.56 KB
05/19/2025 10:07:23 AM
rw-r--r--
Editing: S3ExpressIdentityProvider.php
Close
<?php namespace Aws\Identity\S3; use Aws; use Aws\LruArrayCache; use GuzzleHttp\Promise; class S3ExpressIdentityProvider { private $cache; private $region; private $config; private $s3Client; public function __construct($clientRegion, array $config = []) { $this->cache = new LruArrayCache(100); $this->region = $clientRegion; $this->config = $config; } public function __invoke($command) { $s3Client = $this->getS3Client(); $bucket = $command['Bucket']; if ($identity = $this->cache->get($bucket)) { if (!$identity->isExpired()) { return Promise\Create::promiseFor($identity); } } $response = $s3Client->createSession(['Bucket' => $bucket]); $identity = new Aws\Identity\S3\S3ExpressIdentity( $response['Credentials']['AccessKeyId'], $response['Credentials']['SecretAccessKey'], $response['Credentials']['SessionToken'], $response['Credentials']['Expiration']->getTimestamp() ); $this->cache->set($bucket, $identity); return Promise\Create::promiseFor($identity); } private function getS3Client() { if (is_null($this->s3Client)) { $this->s3Client = $this->config['client'] ?? new Aws\S3\S3Client([ 'region' => $this->region, 'disable_express_session_auth' => true ]); } return $this->s3Client; } }