fix(proxy): reaching s3 storage behind some http proxy
Signed-off-by: Maxime Besson <maxime.besson@worteks.com>
This commit is contained in:
parent
32551b9ff7
commit
03fe74b95e
|
@ -57,6 +57,9 @@ trait S3ConnectionTrait {
|
|||
/** @var int */
|
||||
protected $timeout;
|
||||
|
||||
/** @var string */
|
||||
protected $proxy;
|
||||
|
||||
/** @var int */
|
||||
protected $uploadPartSize;
|
||||
|
||||
|
@ -71,6 +74,7 @@ trait S3ConnectionTrait {
|
|||
|
||||
$this->test = isset($params['test']);
|
||||
$this->bucket = $params['bucket'];
|
||||
$this->proxy = isset($params['proxy']) ? $params['proxy'] : false;
|
||||
$this->timeout = !isset($params['timeout']) ? 15 : $params['timeout'];
|
||||
$this->uploadPartSize = !isset($params['uploadPartSize']) ? 524288000 : $params['uploadPartSize'];
|
||||
$params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region'];
|
||||
|
@ -86,6 +90,10 @@ trait S3ConnectionTrait {
|
|||
return $this->bucket;
|
||||
}
|
||||
|
||||
public function getProxy() {
|
||||
return $this->proxy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the connection
|
||||
*
|
||||
|
@ -123,7 +131,7 @@ trait S3ConnectionTrait {
|
|||
'csm' => false,
|
||||
];
|
||||
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']) {
|
||||
$options['signature_version'] = 'v2';
|
||||
|
|
|
@ -51,7 +51,8 @@ trait S3ObjectTrait {
|
|||
*/
|
||||
public function readObject($urn) {
|
||||
return SeekableHttpStream::open(function ($range) use ($urn) {
|
||||
$command = $this->getConnection()->getCommand('GetObject', [
|
||||
$connection = $this->getConnection();
|
||||
$command = $connection->getCommand('GetObject', [
|
||||
'Bucket' => $this->bucket,
|
||||
'Key' => $urn,
|
||||
'Range' => 'bytes=' . $range,
|
||||
|
@ -70,6 +71,10 @@ trait S3ObjectTrait {
|
|||
],
|
||||
];
|
||||
|
||||
if ($connection->getProxy()) {
|
||||
$opts['http']['proxy'] = $connection->getProxy();
|
||||
}
|
||||
|
||||
$context = stream_context_create($opts);
|
||||
return fopen($request->getUri(), 'r', false, $context);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue