This commit is contained in:
Maxime Besson 2021-06-03 12:15:55 +02:00 committed by GitHub
commit 0e1f1ffdc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -57,6 +57,9 @@ trait S3ConnectionTrait {
/** @var int */ /** @var int */
protected $timeout; protected $timeout;
/** @var string */
protected $proxy;
/** @var int */ /** @var int */
protected $uploadPartSize; protected $uploadPartSize;
@ -71,6 +74,7 @@ trait S3ConnectionTrait {
$this->test = isset($params['test']); $this->test = isset($params['test']);
$this->bucket = $params['bucket']; $this->bucket = $params['bucket'];
$this->proxy = isset($params['proxy']) ? $params['proxy'] : false;
$this->timeout = !isset($params['timeout']) ? 15 : $params['timeout']; $this->timeout = !isset($params['timeout']) ? 15 : $params['timeout'];
$this->uploadPartSize = !isset($params['uploadPartSize']) ? 524288000 : $params['uploadPartSize']; $this->uploadPartSize = !isset($params['uploadPartSize']) ? 524288000 : $params['uploadPartSize'];
$params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region']; $params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region'];
@ -86,6 +90,10 @@ trait S3ConnectionTrait {
return $this->bucket; return $this->bucket;
} }
public function getProxy() {
return $this->proxy;
}
/** /**
* Returns the connection * Returns the connection
* *
@ -124,7 +132,7 @@ trait S3ConnectionTrait {
'use_arn_region' => false, 'use_arn_region' => false,
]; ];
if (isset($this->params['proxy'])) { if (isset($this->params['proxy'])) {
$options['request.options'] = ['proxy' => $this->params['proxy']]; $options['http'] = [ 'proxy' => $this->params['proxy'] ];
} }
if (isset($this->params['legacy_auth']) && $this->params['legacy_auth']) { if (isset($this->params['legacy_auth']) && $this->params['legacy_auth']) {
$options['signature_version'] = 'v2'; $options['signature_version'] = 'v2';

View File

@ -70,6 +70,11 @@ trait S3ObjectTrait {
], ],
]; ];
if ($this->getProxy()) {
$opts['http']['proxy'] = $this->getProxy();
$opts['http']['request_fulluri'] = true;
}
$context = stream_context_create($opts); $context = stream_context_create($opts);
return fopen($request->getUri(), 'r', false, $context); return fopen($request->getUri(), 'r', false, $context);
}); });